對此非常陌生,非常感謝您的幫助。我正在嘗試在 Visual Basic 中撰寫一個 Word 宏,它將用從模式派生的超鏈接替換模式的每個實體。該模式的格式為 123 WORD 4568,其中 WORD 始終相同,但數字(和數字的數量)會發生變化。例如 1948 字 12、231 字 3948、92 字 1029。
超鏈接取決于數字,例如 1948 WORD 12 它類似于www.word.com/1948/12.html
使用通配符,我可以輕松找到模式的所有實體并將它們替換為指向 word.com 的超鏈接:
Sub InsertLinksTB()
Set Rng = ActiveDocument.Range
With Rng.Find
SearchString = "[0-9]{1,9} WORD [0-9]{1,9}"
.MatchWildcards = True
Do While .Execute(findText:=SearchString, Forward:=False) = True
Link = "www.word.com"
ActiveDocument.Hyperlinks.Add Anchor:=Rng, _
Address:=Link, _
SubAddress:="", ScreenTip:="", TextToDisplay:=Rng.Text
Rng.Collapse wdCollapseStart
Loop
End With
End Sub
鑒于通配符,我無法弄清楚如何使用 SubAddress 為模式的每個實體生成完整的超鏈接。
再次,非常感謝您的幫助。謝謝!
uj5u.com熱心網友回復:
如果模式始終相同,則可以使用該Split函式獲取字串的元素并構建鏈接。
Sub InsertLinksTB()
Set Rng = ActiveDocument.Range
With Rng.Find
SearchString = "[0-9]{1,9} WORD [0-9]{1,9}"
.MatchWildcards = True
Do While .Execute(findText:=SearchString, Forward:=False) = True
Link = "www.word.com/" & Split(Rng.Text, " ")(0) & "/" & Split(Rng.Text, " ")(2) & ".html"
ActiveDocument.Hyperlinks.Add Anchor:=Rng, _
Address:=Link, _
SubAddress:="", ScreenTip:="", TextToDisplay:=Rng.Text
Rng.Collapse wdCollapseStart
Loop
End With
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/402302.html
標籤:
上一篇:VBA獲取陣列第一維的最大值
