替换部分超链接

Rem*_*igo 3 excel vba excel-vba

我需要修改.xls工作簿中的很多超链接.我的链接是这样的:

\\\mysrv001\some\path\documents.doc我需要更换\\\mysrv001\\\mysrv002

我试过这样的东西,但是我收到一个错误:"对象不支持这个属性或方法".我该如何解决?

Sub test()
    Dim hLink As Hyperlink
    Dim wSheet As Worksheet
    Dim path As String

    For Each wSheet In Worksheets
       For Each hLink In wSheet.Hyperlinks
            path = Right(hLink, Len(hLink) - 11)
            hLink.Address = "\\mysrv003\" & path
        Next hLink
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)

PS:我正在使用Office 2000

chr*_*sen 8

试试这个

Sub test()
    Dim hLink As Hyperlink
    Dim wSheet As Worksheet

    For Each wSheet In Worksheets
       For Each hLink In wSheet.Hyperlinks
            hLink.Address = Replace(hLink.Address, "\\mysrv001\", "\\mysrv002\")
        Next hLink
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)


Jea*_*ett 5

哎呦!您正在提取并保留路径字符串的左侧部分,您真正想要做的就是丢弃它!

编辑:另外,您不能使用字符串函数(Left,Right,Len超链接对象一样,上...).这是造成错误的原因.您必须提取Hyperlink对象的Address属性 - 这是一个字符串.

更换

path = Left(hLink, 11) ' throws error: Object doesn't support this property...
Run Code Online (Sandbox Code Playgroud)

path = Mid(hLink.Address, 12) ' returns "some\path\documents.doc"
' or, equivalently:
'path = Right(hLink.Address, Len(hLink.Address) - 11) 
Run Code Online (Sandbox Code Playgroud)