Lost your password?


Хитрости »
Основные понятия (27)
Сводные таблицы и анализ данных (10)
Графики и диаграммы (5)
Работа с VB проектом (12)
Power BI и Power Query (23)
Условное форматирование (5)
Списки и диапазоны (5)
Макросы(VBA процедуры) (68)
Разное (43)
Баги и глюки Excel (5)

Как получить адрес гиперссылки из ячейки

Функция, приведенная ниже, позволяет извлечь из ячейки, в которой записана гиперссылка, адрес этой гиперссылки. Гиперссылка может быть записана как с помощью функции ГИПЕРССЫЛКА, так и созданная через контекстное меню. Подробнее про гиперссылки можно прочитать в этой статье: Что такое гиперссылка?

Function Get_Hyperlink_Address(ByVal rCell As Range) As String
    Dim s As String
    If rCell.Hyperlinks.Count = 0 Then
        s = rCell.Formula
        If Mid$(s, 2, 9) = "HYPERLINK" Then
            'такой подход сработает только в случае, если в ячейке записана ссылка текстом
            'но не сработает, если гиперссылка создана из ссылок на ячейки
            '   Get_Hyperlink_Address = Mid$(s, 13, InStr(13, s, Chr(34)) - 13)
            'поэтому используем более сложный, но универсальный вариант
            If s Like "=HYPERLINK*" Then
                'получаем данные первого аргумента и убираем знак =
                s = Split(s, ",")(0)
                s = Mid$(s, 2, Len(s) - 1)
                'на всякий случай добавляем скобку в конец формулы
                'хоть Evaluate должен сработать и без неё
                If Right$(s, 1) <> ")" Then
                    s = s & ")"
                End If
                Get_Hyperlink_Address = Evaluate(s)
            End If
        Else
            Get_Hyperlink_Address = ""
        End If
    Else
        s = rCell.Hyperlinks(1).SubAddress
        If s <> "" Then s = "#" & rCell.Hyperlinks(1).SubAddress
        Get_Hyperlink_Address = rCell.Hyperlinks(rCell.Hyperlinks.Count).Address & s
    End If
End Function

Чтобы правильно использовать приведенный код, необходимо сначала ознакомиться со статьей Что такое функция пользователя(UDF)?. Вкратце: скопировать текст кода выше, перейти в редактор VBA(Alt+F11) -создать стандартный модуль(Insert -Module) и в него вставить скопированный текст. После чего функцию можно будет вызвать из Диспетчера функций(Shift+F3), отыскав её в категории Определенные пользователем (User Defined Functions). Либо можно напрямую записать в ячейку:=Get_Hyperlink_Address(B1)

Скачать пример

  АдресГиперссылки.xls (66,5 KiB, 12 955 скачиваний)


А функция ниже позволяет вытащить из ячейки с гиперссылкой подсказку:
Подсказка для гиперссылки

Function Get_Hyperlink_Title(ByVal rCell As Range) As String
    Dim s As String
    If rCell.Hyperlinks.Count = 0 Then
        If Mid$(rCell.Formula, 2, 9) = "HYPERLINK" Then
            Get_Hyperlink_Title = rCell.Text
        Else
            Get_Hyperlink_Title = ""
        End If
    Else
        Get_Hyperlink_Title = rCell.Hyperlinks(1).ScreenTip
    End If
End Function

Так же см.:
Что такое функция пользователя(UDF)?
Что такое гиперссылка?
Текст в гиперссылки
Как массово изменить гиперссылки?


Статья помогла? Поделись ссылкой с друзьями!
  Плейлист   Видеоуроки

Поиск по меткам

Access apple watch Multex Power Query и Power BI VBA управление кодами Бесплатные надстройки Дата и время Записки ИП Надстройки Печать Политика Конфиденциальности Почта Программы Работа с приложениями Разработка приложений Росстат Тренинги и вебинары Финансовые Форматирование Функции Excel акции MulTEx ссылки статистика
Обсуждение: 21 комментарий
  1. Спасибо, все коректно работает на Excel 2016

  2. Олег:

    А как выполнить обратную задачу? Есть ячейка с текстом, а нужно сделать ее гиперссылкой, чтобы адрес гиперссылки был значением этой ячейки.

    • Олег, и Вам здрасьте. А в статье в самом начале есть ссылка на статью Что такое гиперссылка. Там можно прочитать, как с помощью функции ГИПЕРССЫЛКА сделать текст активной ссылкой.

      • Олег:

        Спасибо, Дмитрий. Статья про гиперссылку помогла правильно написать свой макрос.

Поделитесь своим мнением

Комментарии, не имеющие отношения к комментируемой статье, могут быть удалены без уведомления и объяснения причин. Если есть вопрос по личной проблеме - добро пожаловать на Форум


Для оформления сообщений Вы можете использовать следующие тэги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Тренинги

Заказать
Юридическая информация

Использование материалов сайта

Политика Конфиденциальности

ИП Щербаков Дмитрий Валентинович
ОГРНИП: 318502700083307
ИНН: 504013350772

Наши партнеры

Перейти

Счетчики

Рейтинг@Mail.ru Яндекс.Метрика
© 2024 Excel для всех   Войти