多语言展示
当前在线:771今日阅读:91今日分享:37

如何删除每行行尾的硬回车

很多时候,从有的网上文章或者经OCR识别的图片转换的记事本中的文档粘贴进Word 空文档后,每行都有硬回车,且都参差不齐。如何删除硬回车呢?
方法/步骤
1

解决思路:    先确定一个正常断行的最大长度,比如标题行等,本例是30个字符。长度超过30字符的段落才可能是多余的换行,只要看一下最后一个字符是不是段落尾会有字符就行了。    本例只列出三个:句号,叹号,问号,根据文档特征,还可以加上右引号,右括号,省略号等。Sub 测试()    Const ml& = 30 '最大长度    Const le$ = "。?!" '行尾字符    Dim arr, all$, i&, newdoc As Document    arr = Split(ActiveDocument.Range, Chr(13))    For i = 0 To UBound(arr)        If Len(arr(i)) > ml Then            all = all & arr(i)            If InStr(le, Right$(arr(i), 1)) Then all = all & Chr(13)        Else            If Len(Trim(arr(i))) Then all = all & arr(i) & Chr(13)        End If    Next    Set newdoc = Documents.Add    newdoc.Range.ParagraphFormat.CharacterUnitFirstLineIndent = 2    newdoc.Range = allEnd Sub    解决问题的关键是理清思路,写完上面的代码,测试成功之后,就猜到用查找替换就可轻松实现。    解决办法:    1.使用通配符→查找→([!^13]{30}*[!。!?])^13→替换为→→全部替换。        2.再手动缩进一下就ok了。    此方法实际操作了一下,感觉一是似乎不能一次删除所有行尾硬回车,要反复多次重复上面的操作才能删完;二是替换完了以后得重排段落,还好能很容易找到那些应该分段的地方(有多个空格)。所以看起来此方法还需完善,但此方法技术含量高,有可能是能最有效的解决问题的方法,因此期待有高人按此思路提供更好的方法。

2

首先在每一段正确的段尾都加上文章中没有的标记,如“&&&&”。然后打开“查找和替换”对话框,把光标插入“查找内容”框,逐一点击“高级→特殊字符→段落标记”,再把光标插入“替换为”框中,依次点击“特殊字符→不间断空格”,“^s”出现在“替换为”框中,接着按“全部替换”,所有硬回车都没有了。随后,再打开“查找和替换”对话框,在“查找内容”框键入“&&&&”,再把光标插入“替换为”框,点击“特殊字符→段落标记”,最后按“全部替换”,至此文章就整理完毕了。

推荐信息