【问题标题】:VBA find word and replace with a Hyperlink in Word 2010VBA 在 Word 2010 中查找单词并用超链接替换
【发布时间】:2014-07-15 04:49:31
【问题描述】:

我有一个带有一些文字的 word 文档。在某些段落中,我有想要添加超链接的单词。这是一个例子:

《当太阳升起》这本书,ABC-1212321-DEF,今天已经出版了......

应该找到“ABC-1212321-DEF”并应用如下超链接:http://google.com/ABC-sometext-1212321-anothertext-DEF

文档中的所有字符串都以“ABC-”开头,以“-DEF”结尾。

提前致谢。

编辑:

这就是我到目前为止所得到的:

Sub InsertLinks()
Dim r As Range
Dim SearchString As String

Set r = ActiveDocument.Range
SearchString = "ABC-"
With r.Find
.MatchWildcards = True
Do While .Execute(findText:=SearchString, Forward:=True) = True
ActiveDocument.Hyperlinks.Add Anchor:=r, _
Address:=Replace(r.Text, " ", ""), _
SubAddress:="", ScreenTip:="", TextToDisplay:=r.Text
With r
.End = r.Hyperlinks(1).Range.End
.Collapse 0
End With
Loop
End With
End Sub

现在检测 ABC- 并添加一些随机链接。但需要得到 ABC- 和 -DEF 之间的数字。长度不一样。

【问题讨论】:

标签: vba hyperlink ms-word word-2010


【解决方案1】:

解决方案

这是解决我问题的代码:

Sub InsertLinksTB()
Dim Rng As Range
Dim SearchString As String
Dim EndString As String
Dim Id As String
Dim Link As String


Set Rng = ActiveDocument.Range
SearchString = "ABC-"
EndString = "-DEF"
    With Rng.Find
    .MatchWildcards = True
        Do While .Execute(findText:=SearchString, Forward:=False) = True
            Rng.MoveStartUntil ("ABC-")
            Rng.MoveEndUntil (" ")
            'MsgBox (Rng.Text)
            Id = Split(Split(Rng.Text, "ABC-")(1), "-DEF")(0)
            'MsgBox (Id)
            Link = "http://google.com/" & Id

                ActiveDocument.Hyperlinks.Add Anchor:=Rng, _
                Address:=Link, _
                SubAddress:="", ScreenTip:="", TextToDisplay:=Rng.Text
                Rng.Collapse wdCollapseStart


        Loop
    End With

End Sub

所以如果在文本中找到文本“ABC-1234-DEF”,它会用http://google.com/1234超链接这段文本

希望这对某人有帮助。

【讨论】:

    猜你喜欢
    • 2013-07-12
    • 1970-01-01
    • 1970-01-01
    • 2022-10-06
    • 1970-01-01
    • 2018-03-24
    • 1970-01-01
    • 2016-12-26
    • 1970-01-01
    相关资源
    最近更新 更多