VBA Macro Clicked Run但没有任何反应

时间:2016-05-27 03:04:58

标签: excel vba macros

我有一个包含数百个超链接的数据库,这些超链接指向文件的位置:/// \ 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

或者如果我可以使用任何其他解决方案来更改超链接位置,那么我将非常非常感谢。

1 个答案:

答案 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

这应该根据您提供的样本工作,但您必须小心避免部分匹配的误报。请注意,我添加了前导和尾随反斜杠,使您的搜索和替换术语更加独特。