Есть ли макрос, код VBA или VBScript, который я могу написать для редактирования URL-адресов всех гиперссылок в документе Word? Формат Word 97-2003 или docx.
Как программно редактировать все гиперссылки в документе Word?
Ответ 1
Dim doc As Document
Dim link, i
'Loop through all open documents.
For Each doc In Application.Documents
'Loop through all hyperlinks.
For i = 1 To doc.Hyperlinks.Count
'If the hyperlink matches.
If LCase(doc.Hyperlinks(i).Address) = "http://www.yahoo.com/" Then
'Change the links address.
doc.Hyperlinks(i).Address = "http://www.google.com/"
'Change the links display text if desired.
doc.Hyperlinks(i).TextToDisplay = "Changed to Google"
End If
Next
Next
Вот ссылка на все Методы и свойства гиперссылки
Ответ 2
Это очень помогло мне. Пользователь открыл Word Docs, содержащие гиперссылки через свой сопоставленный диск, вместо того, чтобы долго проходить через сеть. Сотни документов будут сохранены!
Я использовал функцию mid():
Sub FixMyHyperlink()
Dim doc As Document
Dim link, i
'Loop through all open documents.
For Each doc In Application.Documents
'Loop through all hyperlinks.
For i = 1 To doc.Hyperlinks.Count
'If the hyperlink matches.
If LCase(doc.Hyperlinks(i).Address) Like "*partOfHyperlinkHere*" Then
'Change the links address. Used wildcards (*) on either side.
doc.Hyperlinks(i).Address = Mid(doc.Hyperlinks(i).Address, 70,20) '
'Change the links display text if desired.
'doc.Hyperlinks(i).TextToDisplay = "Oatmeal Chocolate Chip Cookies"
End If
Next
Next
End Sub
Ответ 3
Благодаря тестеру для решения, он использовал его для быстрой замены:
Sub ReplaceLinks()
Dim doc As Document
Dim link, i
'Loop through all open documents.
For Each doc In Application.Documents
'Loop through all hyperlinks.
For i = 1 To doc.Hyperlinks.Count
'Update old bookmarks to https
doc.Hyperlinks(i).Address = Replace(doc.Hyperlinks(i).Address, "gopher:", "https://")
Next
Next
End Sub
Ответ 4
Я новичок в этом сообществе. Спасибо за код ниже, и он работает для моей задачи:
Dim doc As Document Dim link, я 'Прокрутите все открытые документы. Для каждого документа в Application.Documents 'Loop через все гиперссылки. Для я = 1 Для doc.Hyperlinks.Count 'Если гиперссылка соответствует. Если LCase (doc.Hyperlinks(i).Address) = " http://www.yahoo.com/ " Затем "Изменить адрес ссылки. doc.Hyperlinks(i).Address = " http://www.google.com/ " "При необходимости измените текст отображения ссылок. doc.Hyperlinks(i).TextToDisplay = "Изменено для Google". End If Next
следующий
Однако, когда я сохранил новый документ Hyperlink, откройте его снова с помощью этого макрокода, код не сможет обнаружить новую ссылку. Пребывание в новом документе, попытка "редактировать гиперссылку" в режиме командной строки также не удалась, то есть новая гиперссылка doc больше не редактируется. Кажется, чего-то не хватает в новой гиперссылке. Какие-либо предложения?
Lapyiu