VBA 在 Word 2010 中查找单词并替换为超链接

标签 vba hyperlink ms-word word-2010

我有一个包含一些文本的 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之间的数字。长度不一样。

最佳答案

解决方案

这是解决我的问题的代码:

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 超链接该文本。

希望这对某人有帮助。

关于VBA 在 Word 2010 中查找单词并替换为超链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23869679/

相关文章:

c# - MS Word 中的语法高亮显示

excel - 在 VBA 中使用文件选择器打开工作簿会引发编译错误

c# - 不能将超链接写成字符串

vba - 将分钟添加到时间 (hh :mm) in excel vba

html - 使用 CSS 模拟 <a target ="_top">

delphi - RichEdit 不处理超链接

c# - 使用格式信息读取 word 文件内容(图像和文本)

包含字母和数字以及可能的下划线和破折号的任何字符串的正则表达式代码

security - 如何安全地保护 Excel VBA 项目代码,使密码恢复程序无法恢复/破解它?

excel - 有人可以提供为什么 `Interior.Color` 属性不能在 Excel VBA 中从一个范围分配到另一个范围的技术原因吗?