【问题标题】:Copy found text including hyperlink to new document复制找到的文本,包括指向新文档的超链接
【发布时间】:2024-04-26 09:20:01
【问题描述】:

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

我已经尝试过(源是word中的表格,目标也是):

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

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

有什么建议吗?

【问题讨论】:

    标签: vba hyperlink ms-word


    【解决方案1】:

    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
    

    【讨论】: