将超链接替换为本地目录

Replace Hyperlinks to Local Directory

我正在尝试以下操作:当 VBA 在其地址中找到带有单词“servlet”的超链接时,正在定义的目录中搜索超链接名称,并在找到匹配文件时将其链接然后到文件:

Sub Replace_Link()
Dim strPath As String
Dim oRng As Range
Dim sName As String
Dim H As Hyperlink
    strPath = ActiveDocument.Path & "\attachments\"
    For Each H In ActiveDocument.Hyperlinks
        If InStr(H.Address, "servlet") <> 0 Then
            Set oRng = H.Range.Select
            sName = Dir$(strPath & Trim(oRng.Text) & ".*")
            If Not sName = "" Then
                oRng.Hyperlinks.Add Anchor:=oRng, Address:=strPath & sName, TextToDisplay:=Trim(Rong.Text)
            Set oRng = Nothing
        End If
    Next H
End Sub 

例如:我有一个超链接 image.png,VBA 在文件夹文件 image 和链接中找到文件。

此代码在 Set Rng = H.Range.Select 行中抛出一个错误,即预期的函数或变量。为什么我不能用变量定义选择?如果我写 Selection 而不是 Rng,就会在别处抛出错误。

如果该方法是 return 范围的函数,则只能为该方法设置范围。 Select 没有 return 任何东西,它只是移动光标。

你只需要 Set Rng = H.Range