复制找到的文本,包括指向新文档的超链接

时间:2017-10-10 09:27:39

标签: hyperlink word-vba

我的VBA脚本正在搜索Word文档中的特定文本,如果找到的文本包含超链接,我还想将超链接复制到新文档。

我试过(source是一个单词表,所以是目的地):

With source.Cell(1,1).Range
   .Find.Text = "MyTextToSearch
   .Find.Execute Forward:=True
   .Select
   .Copy
End With
destination.Cells(1).Range.Paste

文本将复制到目标但没有超链接。 当我使用查找和复制并粘贴(通过GUI)在Word中执行相同操作时,所有内容都将复制到目标

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

Word会查找未在文档中搜索的文本,但是在超级链接中。因此,当您复制文本时,您将获得找到的文本,如果您想要超链接,则必须指定要复制的超链接。以下代码对此进行了区分。

Dim Rng As Word.Range
Dim Fnd As Boolean

Set Rng = ActiveDocument.Tables(1).Cell(1, 1).Range
With Rng
   .Find.Text = "This is my text"
   Fnd = .Find.Execute(Forward:=True)
End With

If Fnd Then
    If Rng.Hyperlinks.Count Then
        Set Rng = Rng.Hyperlinks(1).Range
    End If
    Rng.Copy
    ActiveDocument.Tables(1).Cell(5, 1).Range.Paste
End If