我经常创建只包含图形项目的 Word(2010 版)文档,有时图形旁边会有一些文本,例如“新建!”(我想保留)。我想创建一个宏,删除文档中所有这些图形/图形之间带有文本的项目之间的所有间距(任何类型的间距),这样它们就会一个接一个地排列,直到填满一行,然后下一个图形会自动从下一行开始(然后再次重复一个接一个的图形,没有任何间距),等等。目前,我使用箭头、删除和退格键手动执行此操作,这非常耗时。我已上传“之前/之后”的 GIF 图像,以了解文档在运行宏之前和之后的样子:
顺便问一下,如果我想在图形之间添加一定数量的空格,有没有办法“调整”宏来实现这一点,而且很容易?如果可以,我还需要在宏中添加什么文本才能实现这一点?
非常感谢你的帮助。
答案1
Word 内置的“查找和替换”工具可以为您完成 90% 的工作。如果您使用“更多 >>”选项(其中有“特殊”下拉按钮),它可以搜索分页符、段落标记、空格等。
该“特殊”按钮将允许您选择段落、各种不同的空白字符、换行符等。
其余 10% 可以使用 VBA 开发人员选项卡上的宏记录器完成。
开始录制,逐一替换所有换行符、段落标记等,直到得到您想要的图像。
然后停止录制。瞧!宏的魔力。
经过快速测试,我可以使用以下方法消除大多数各种格式类型。^p
对应于“段落标记”,而查找和替换工具则用""
Ie 替换它。
Sub Macro1()
'
' Macro1 Macro
'
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^p"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "^t"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^b"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^m"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = " "
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
如果您希望每幅图像之间都有空格,则只需将.Replacement.Text = ""
每个部分更改为包含空格,例如.Replacement.Text = " "