Путем изменения свойства «Адрес» элемента «Гиперссылки» объекта диапазона. Гиперссылки - это коллекция, поэтому вы выберете первый элемент, если ваш диапазон представляет собой одну ячейку, но он позволяет вам легко проходить по всем ссылкам, содержащимся в данном диапазоне или рабочей таблице.
Ниже приведен пример изменения ссылки только для выбранной ячейки (примечание: она уже должна иметь гиперссылку).
Sub ChangeLink()
Application.ActiveCell.Hyperlinks(1).Address = "www.test.com"
End Sub
Вот вариант, который изменяет все ссылки в текущем листе на www.google.com, если они в настоящее время не указывают на www.google.com (не обязательно, но только для демонстрации):
Sub ChangeLinks()
For x = 1 To Application.ActiveSheet.Hyperlinks.Count
If Application.ActiveSheet.Hyperlinks(x).Address <> "www.google.com" Then
Application.ActiveSheet.Hyperlinks(x).Address = "www.google.com"
End If
Next x
End Sub
Вы также можете добавлять и удалять ссылки, используя методы Hyperlinks.Add и .Delete.
Свойство TextToDisplay позволяет изменять текст, а свойство Range позволяет получить доступ (или выяснить), к каким ячейкам относится данная ссылка.
РЕДАКТИРОВАТЬ: В соответствии с просьбой, вот как это сделать для всех ссылок в одном конкретном столбце.
Чаще всего мне нравится создавать несколько переменных для назначения (установки) объектов, с которыми я работаю, таких как рабочий лист (здесь вызывается «Sheet1»), а затем фактический столбец, на который я буду ссылаться myColumn. Если вы получаете сообщение об ошибке, это позволяет вам точно определить, где именно происходит сбой.
Обратите внимание, как коллекция Hyperlinks хорошо настраивается в соответствии с объектом, из которого вы ее вызываете!
Я также добавил проверку, которая показывает сообщение, если в указанном столбце нет ссылок.
Sub ChangeLinksInColumn()
Dim mySheet As Worksheet
Dim myColumn As Range
Set mySheet = Application.Worksheets("Sheet1")
Set myColumn = mySheet.Columns(3) ' Enter column number here
' Check if column contains hyperlinks
If myColumn.Hyperlinks.Count = 0 Then
MsgBox "No hyperlinks in specified column."
Else
' Perform task in myColumn only
For x = 1 To myColumn.Hyperlinks.Count
myColumn.Hyperlinks(x).Address = "www.google.com"
Next x
End If
End Sub