Excel VBA для извлечения гиперссылки из формулы гиперссылки

931
aliw1

Я пытаюсь написать код VBA для проверки ссылок в электронной таблице. У меня это работает хорошо, пока я не столкнулся с Гиперссылками, созданными из формулы. Например =Hyperlink(A1,"Link1")или=Hyperlink(A1&A2,"Link2")

Стандартный Hyperlinks(1).AddressVBA не регистрирует их как имеющие ссылку, и я не могу найти никаких других решений в Интернете.

Есть идеи?

0
Непонятно ............ Вы хотите преобразовать формулу в * вставленную гиперссылку * ?? Gary's Student 6 лет назад 0
Я хочу проверить, что гиперссылка, созданная из функции Гиперссылка, действительно имеет действительный адрес. aliw1 6 лет назад 0

1 ответ на вопрос

0
Gary's Student

Вот простой подход, который будет обрабатывать некоторые ваши формулы. Скажем, A1 содержит формулу:

=HYPERLINK("http://www.google.com","search") 

Если мы выберем его и запустим:

Sub HyperChecker() Dim s1 As String, s2 As String, arr  s1 = ActiveCell.Formula s2 = Mid(s1, 12) arr = Split(s2, ",") MsgBox arr(0) End Sub 

мы получаем:

Код отбрасывает начало и конец формулы и возвращает URL.

Проблема возникает, если первым аргументом функции является выражение, а не строковая константа .

Тогда вам понадобится EVALUATE()это выражение.

Это примерно так, как я получил с моим кодом. Когда ссылки созданы из вложенной формулы, это становится намного сложнее. Спасибо за помощь. aliw1 6 лет назад 0
@ aliw1 У меня есть пара идей о том, как атаковать сложные гиперссылки. Если вы хотите, я обновлю этот ответ позже сегодня. Gary's Student 6 лет назад 0

Похожие вопросы