宏1【最近不太灵光了,下面的宏2可能更好用。】
原文地址:Word宏:一键删除空格空行作者:Word之家
通过复制粘贴网络资源得到的Word文档无用空格和空行很多,一一删除非常麻烦,如果创建一个具有相关功能的word宏,然后再往工具栏上添加剂一个按钮,当我们单击工具栏中的这个按钮时,通过执行word宏就可以实现一键删除word文档中的所有空格和空行了。
先启动word然后关闭默认打开的word文档,再单击菜单“工具-宏-visualbasic编辑器”命令,调节器出"visualbasic编辑器",在"visualbasic编辑器"窗口中,右击"Normal",选择“插入-模块“命令,插入一个模块。
插入一个模块后,在"visualbasic编辑器"右边自动打开的窗口中输入以下代码(代码如下:
Sub KongGe()
Dim i As Paragraph, n As Long
Application.ScreenUpdating = False
For Each i In ActiveDocument.Paragraphs
If Len(i.Range) = 1 Then
i.Range.Delete
n = n + 1
End If
Next
Application.ScreenUpdating = True
Options.AutoFormatAsYouTypeDeleteAutoSpaces = True
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = " "
.Replacement.Text = ""
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
代码输入完毕后,退出"visualbasic编辑器",这时刚刚输入的代码不被自动保存了。
宏2:
来源:https://gist.github.com/bitdust/12e3e251f014897fbb9bf3ab4fc7fd8f
Sub 删除换行及空格()
'
' 删除换行及空格 宏
' 用于调整从PDF文件中复制出的文字格式
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = " "
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^p"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub