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

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

Есть идеи?

1 ответ1

0

Вот простой подход, который будет обрабатывать некоторые ваши формулы. Скажем, 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() это выражение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .