我有一个包含数百个超链接的数据库,这些超链接指向文件的位置:/// \ My002vs0026 \ Department \“文件名”,我希望只更改它的初始部分,即“My002..0026” “到”My002..0095“
我使用了以下在网上找到的代码,当我点击运行时,没有任何反应。
Sub ChangeHyperlinks()
Dim h As Hyperlink
Dim oldDr As String, newDr As String
oldDr = "my002vs0026"
newDr = "my002vs0095"
For Each h In Sheets("Sheet1").Hyperlinks
h.Address = newDr & Mid(h.Address, Len(oldDr) + 1, Len(h.Address))
Next h
End Sub
或者如果我可以使用任何其他解决方案来更改超链接位置,那么我将非常非常感谢。
答案 0 :(得分:0)
您可能会发现在现有Replace的.Address上执行Hyperlinks object操作会更容易。
Option Explicit
Sub ChangeHyperlinks()
Dim h As Long
Dim oldDr As String, newDr As String
oldDr = "\my002vs0026\"
newDr = "\my002vs0095\"
With Worksheets("Sheet1")
For h = 1 To .Hyperlinks.Count
With .Hyperlinks(h)
'Debug.Print .Address
.Address = Replace(.Address, oldDr, newDr, 1, -1, vbTextCompare)
'Debug.Print .Address
End With
Next h
End With
End Sub
这应该根据您提供的样本工作,但您必须小心避免部分匹配的误报。请注意,我添加了前导和尾随反斜杠,使您的搜索和替换术语更加独特。