Mike的文档中包含很多用引号引起来的单词。他希望对带引号的单词进行标记以包含在索引中,并希望删除引号。

在文档中进行此类更改的最佳方法是使用宏。宏需要搜索带引号的文本,弄清楚它的开始和结束位置,删除引号,然后添加索引号。 (通过使用XE字段添加标记。)

这样的宏可能有许多种构造方法。以下是可以使用的一种:

Sub QuotesToIndexEntries()

Dim iOpenQuote As Integer     Dim iCloseQuote As Integer     Dim sP As String     Dim sPhrase As String     Dim iParas As Integer

If Selection.ExtendMode Then Exit Sub

iParas = Selection.Paragraphs.Count     Selection.StartOf unit:=wdParagraph, Extend:=wdMove     For J = 1 To iParas         Selection.MoveEnd unit:=wdParagraph         sP = Selection.Text         iOpenQuote = InStr(sP, Chr(34))

If iOpenQuote = 0 Then iOpenQuote = InStr(sP, Chr(147))



While iOpenQuote > 0             iCloseQuote = InStr(iOpenQuote + 1, sP, Chr(34))

If iCloseQuote = 0 Then                 iCloseQuote = InStr(iOpenQuote + 1, sP, Chr(148))

End If             If iCloseQuote > 0 Then                 sPhrase = Mid(sP, iOpenQuote + 1, _                   iCloseQuote - iOpenQuote - 1)

Selection.Collapse Direction:=wdCollapseStart                 Selection.MoveRight unit:=wdCharacter, _                   Count:=iOpenQuote - 1, Extend:=wdMove                 Selection.Delete unit:=wdCharacter, Count:=1                 Selection.MoveRight unit:=wdCharacter, _                   Count:=Len(sPhrase), Extend:=wdMove                 Selection.Delete unit:=wdCharacter, Count:=1

Selection.Fields.Add Range:=Selection.Range, _                   Type:=wdFieldEmpty, _                   PreserveFormatting:=False                 Selection.MoveLeft unit:=wdCharacter, Count:=1                 Selection.Delete unit:=wdCharacter, Count:=2                 Selection.TypeText Text:="XE " + Chr(34) + _                   sPhrase + Chr(34)

Selection.MoveRight unit:=wdCharacter, _                   Count:=1, Extend:=wdMove             End If             Selection.MoveEnd unit:=wdParagraph             sP = Selection.Text             iOpenQuote = InStr(sP, Chr(34))

If iOpenQuote = 0 Then iOpenQuote = InStr(sP, Chr(147))

Wend                  Selection.MoveStart unit:=wdParagraph, Count:=1     Next J End Sub

为了使用宏,只需在运行它之前选择要影响的文本即可。 (如果要影响整个文档,请在运行宏之前按Ctrl + A。)

注意:

如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)上描述的宏,我准备了一个包含有用信息的特殊页面。

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(13240)适用于Microsoft Word 2007、2010、2013、2016、2019和Office 365中的Word。 Word的旧菜单界面在这里: