我需要修改 .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

PS:我使用的是 Office 2000

最佳答案

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

编辑:此外,您不能在像这样的超链接对象上使用字符串函数( LeftRightLen ...)。这就是导致错误的原因。您必须提取 Hyperlink 对象的 Address 属性——这是一个字符串。

代替

path = Left(hLink, 11) ' throws error: Object doesn't support this property...


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

关于vba - 替换部分超链接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7228195/

10-11 08:18