自动在部分引用下划线(Microsoft Word)
艾格尼丝(Agnes)问是否有一种方法可以自动在单词“ Section”的所有实例下划线,以及在单词之后的任何辅助信息。
例如,文档可能包含诸如“ 2.3(b)(i)节”
之类的文本。或“第5.21节”或“第12.12(a)节”,Agnes希望找到该文本,并在所有文本下划线。
有一些尝试的方法。首先,您可以执行标准的“查找和替换”操作,但前提是您可以以某种方式使文本更加“标准”。如果没有某种可以匹配的模式,则几乎不可能进行查找和替换以查找文本的所有可能实例。
但是,一种可能性是记录确实查看所有可能性的宏。它不一定是一个简单的宏,因为它需要找到单词“ Section”,然后紧跟一个空格,一个数字,一个句点,更多个数字,然后(可选)找到直至并包括右括号的所有内容。这需要进行大量的文本分析。
从通配符搜索开始。以下搜索词将找到单词Section,后跟“数字点号”
模式:
Section [0-9]{1,}.[0-9]{1,}
如果在宏中使用此搜索模式,则在每次成功找到文本后,宏都可以开始扩展找到的内容,并查看其是否包含括号字符。下面的宏将执行此任务。
Sub ULWords() Selection.Find.ClearFormatting With Selection.Find .Text = "Section [0-9]{1,}.[0-9]{1,}" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = True .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute While Selection.Find.Found Selection.MoveRight Unit:=wdCharacter, _ Count:=1, Extend:=wdExtend While Right(Selection.Text, 1) = "(" Selection.MoveRight Unit:=wdCharacter, _ Count:=1, Extend:=wdExtend While Right(Selection.Text, 1) <> ")" Selection.MoveRight Unit:=wdCharacter, _ Count:=1, Extend:=wdExtend Wend Selection.MoveRight Unit:=wdCharacter, _ Count:=1, Extend:=wdExtend Wend Selection.MoveRight Unit:=wdCharacter, _ Count:=-1, Extend:=wdExtend Selection.Font.Underline = True Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.Find.Execute Wend End Sub
请注意,宏在开头使用通配符搜索来查找单词“ Section”的所有实例,后跟“数字点号”
模式。如果找到一个实例,则将其扩展一个字符。
如果该字符是左括号,那么选择将一直扩展到找到右括号为止。寻找开/关括号的过程继续进行,并且当没有更多的集合时,整个扩展的选择都用下划线标出。继续此过程,直到搜索了整个文档。
注意:
如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)上描述的宏,我准备了一个包含有用信息的特殊页面。
_WordTips_是您进行经济有效的Microsoft Word培训的来源。
(Microsoft Word是世界上最流行的文字处理软件。)本技巧(11516)适用于Microsoft Word 2007、2010、2013、2016、2019和Office 365中的Word。 Word的旧菜单界面在这里: