Страницы: 1
RSS
Как извлечь свойство SubAddress из объекта Hyperlink, Гиперссылка и все что с ней связано
 
Добрый день знатокам!
Стоит такая задача. Макросом в документе проставлено множество ссылок на определенные ячейки с помощью команды
Код
Sheets(i).Range(RepairCell.Address).Hyperlinks.Add Anchor:=RepairCell, Address:="", SubAddress:="'" & "Объект №" & GoodCode & "'!" & target.Address, TextToDisplay:=GoodCode

Как из этого объекта извлечь свойство SubAddress для изменения?

Требуется массово исправить название листа в множестве гиперссылок. Они сидят в SubAddress. Пробовал извлечь так:

Код
Dim SubAddressLink As String
SubAddressLink = Sheets(i).Range(RepairCell.Address).Hyperlink.SubAddress

Но получаю пустую ссылку ""

UPD: Важно именно достать старую ссылку, т.к. в ней еще находится конкретный адрес ячейки, на которую ссылается гиперссылка.
Изменено: EvilOkta - 17.06.2019 11:59:59
 
Здравствуйте. Может, так?
Код
SubAddressLink = Sheets(i).Range(RepairCell.Address).Hyperlinks(1).SubAddress
Изменено: Пытливый - 17.06.2019 12:11:29
Кому решение нужно - тот пример и рисует.
 
Да, так заработало. Спасибо!
Я правильно понимаю что число в скобках это номер гиперссылки в объекте типа Range? Поправьте если ошибаюсь. В интернете очень мало инфы по vba hyperlink и их применениям
 
Число в скобках - это индекс (или номер, если угодно) гиперссылки в коллекции гиперссылок листа или диапазона
Согласие есть продукт при полном непротивлении сторон
 
Спасибо за оперативную помощь. Чтобы не сливать просто так тему выкладываю рабочий код, который позволит достать адрес из гиперссылки, отделить из него часть с адресом ячейки на другом листе, заменить название листа и собрать гиперссылку обратно.
Вдруг кого-то выручит.

А всем откликнувшимся респект!
Код
Dim RepairCell As Range
Dim SubAddressLink As String
Dim AddressCell As String
Dim Sign_position As Single
Dim NewAddress As String

SubAddressLink = Sheets(i).Range(RepairCell.Address).Hyperlinks(1).SubAddress
Sign_position = InStr(SubAddressLink, "!")
AddressCell = Mid(SubAddressLink, Sign_position + 1)
NewAddress = "'" & "Объект №" & GoodCode & "'!" & AddressCell
RepairCell.Hyperlinks.Delete
RepairCell.Value = ""
Sheets(i).Range(RepairCell.Address).Hyperlinks.Add Anchor:=RepairCell, Address:="", SubAddress:=NewAddress, TextToDisplay:=GoodCode
Страницы: 1
Наверх