将超链接替换为本地目录
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
我正在尝试以下操作:当 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