可能有很多方法可以做到這一點。就代碼而言,如果將範圍設置爲ActiveDocument.Range,然後使用該範圍的.Find對象,則Word應該連續返回「覆蓋」找到的文本的Range對象。根據您對文檔內容的多少控制,您可以輕鬆標記要找到的文本的一種方法是創建一種字符樣式並將其應用於所有這些文本。然後你可以這樣做:
Sub multipleFIndsUsingAStyle()
Dim rng As Range
Set rng = ActiveDocument.Range
With rng.Find
.Text = ""
' Create a style called findStyle and
' apply it to the texts you want to find
.Style = "findStyle"
.Forward = True
.Execute
While .Found
Debug.Print rng.Start, rng.End
.Execute
Wend
End With
Set rng = Nothing
End Sub
有幾種完全不同的方法可以使用。一種方式是使用字段插入兩個替代文本,如下所示(有幾種方法可以做到這一點):
使用VBA創建名爲q1,v1,q2,v2等文檔變量,其值爲Q.1,intro1,Q.3,和home1等喜歡這張
隨着ActiveDocument.Variables .Item( 「Q1」)。值= 「Q.1」 .Item( 「V1」)。值=「Q3」 .Item(「v2」)。Value =「home1」 '我們將使用這個名稱來切換名稱 .Item(「q2」)。 「qv」)。Value =「q」 End With
對於每個編號/變量,插入一個嵌套場這樣
{ DOCVARIABLE "{ DOCVARIABLE qv }{ SEQ q }" }
(所有的{}需要是可以在Windows Word中使用CTRL-F9插入特殊字段括號字符)。
然後使用
ActiveDocument.Variables("qv").Value = "q"
ActiveDocument.Fields.Update
顯示數字和
ActiveDocument.Variables("qv").Value = "v"
ActiveDocument.Fields.Update
顯示名稱。在這種情況下,用戶將能夠看到您可能不需要的域代碼。