Заменить часть гиперссылки - PullRequest
3 голосов
/ 29 августа 2011

Мне нужно изменить много гиперссылок в книге .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

Ответы [ 2 ]

8 голосов
/ 29 августа 2011

попробуйте

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
5 голосов
/ 29 августа 2011

Упс!Вы извлекаете и сохраняете левую часть вашей строки пути, где вы действительно хотите отбросить это!

РЕДАКТИРОВАТЬ: Кроме того, вы не можете использовать строковые функции (Left, Right, Len ...) на объекте гиперссылки, как это.Это то, что вызывает ошибку.Вы должны извлечь свойство Address объекта Hyperlink - это строка.

Заменить

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) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...