Lost your password?


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

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

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

Function Get_Hyperlink_Address(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_Address = Mid$(rCell.Formula, 13, InStr(13, rCell.Formula, Chr(34)) - 13)
        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)?.
Доступна функция будет из Мастера функций, категория Определенные пользователем (User Defined). Либо можно напрямую записать в ячейку:=Get_Hyperlink_Address(B1)

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

  Tips_Macro_Get_Hyperlink_Address.xls (41,5 KiB, 11 858 скачиваний)


Решил дополнить статью примером функции, которая позволяет вытащить из ячейки с гиперссылкой подсказку:
Подсказка для гиперссылки

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. Sajgor:

    Здравствуйте. помогите, пожалуйста. Сделала и всё получилось. Но при копировании на другую книгу или страницу, все ссылки исчезают. как сделать так, чтобы адреса ссылок переписывались в другой столбец как текст, а не формула?

  2. Sajgor:

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

  3. Марина:

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

  4. Марина, потому что для таких ссылок иной путь:
    rCell.Hyperlinks(1).SubAddress

  5. Сергей:

    А как сделать так что если в ячейке пусто то чтобы и ячейка куда должна выводиться гиперссылка была пустой?

    • Попробуйте посмотреть на код и мыслить логически. На данный момент, если нет гиперссылки, то функция вернет "В ячейке нет гиперссылки!". Теперь осталось лишь найти этот текст в теле кода и заменить этот текст на пусто:
      это

      Get_Hyperlink_Address = "В ячейке нет гиперссылки!"

      на

      Get_Hyperlink_Address = ""

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

  6. Спасибо большое автору, у меня ограменный прайс-лист был в котором из каждого наименование нужно было достать гипер ссылку в отдельную колонку! Супер, то что нужно ))

  7. Данил:

    Не получается достать гиперссылку из картинок, в чем может быть проблема? и делалось ли такое вообще?

    • Потому что это функция листа, которая не принимает в качестве аргумента объект. Она работает только с ячейками.
      А вообще сделать можно, но подход уже другой.

      • Данил:

        Вообще мне нужно скачать картинки из этих гиперссылок, как я понял для скачивания картинок нужны сами ссылки или можно не даставая из гиперссылок скачать? Сможете это сделать за плату?

  8. Станислав:

    А если вот такая =ГИПЕРССЫЛКА("http://www.gardenbulbs.ru/images/Bushes_CL/thumbnails/"&Q10&".jpg";"фото1")
    которая имя файла берет из ячейки, как получить полную ссылку. Спасибо заранее.

  9. Оксана:

    Здравствуйте. помогите, пожалуйста. Уже дошло до слез - вроде все ясно написано, у кого-то получилось, у меня - нет ((( Пробовала и через функцию - пишет нет аргумента...

    • Ну и как же помочь? единственное, что можно подсказать по слезному описанию - Вы просто не указываете ссылку на ячейку для функции. Скачайте пример, приложенный к статье и посмотрите как там записано.

      • Оксана:

        Заработало!!! Прочитала Ваш ответ на форуме ))) Положила "Спасибо", мелочь, а приятно)))
        Теперь бы понять как эти "противные" заложили ссылки...? Когда нажимаешь на их прайсе уходишь то на разные товары, а ссылка остается одна...? Буду думать.
        Если Вы с таким встречались и знаете как это обойти, то какова "цена вопроса" ?

        • Оксана:

          Победила!!! Может кому пригодиться - нужно менять каждый раз №ячейки - D3, D5 и т.д. А можно это как-то автоматизировать или это уже "наглость" )))

        • У Вас в ссылках отличается эта часть: "prod14059". Т.е. разные продукты, но окончание ссылок одинаковое. Так что верно со ссылками. А что до менять D5, D6 и т.д. - то ничего менять не надо. Указали в ровности так, как я написал на форуме: =Get_Hyperlink_Address(D3)Далее просто копируете ячейку с этой формулой, выделяете остальные ячейки диапазона и вставляете скопированное. Ссылки сами поменяются.

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

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


Для оформления сообщений Вы можете использовать следующие тэги:
<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 Яндекс.Метрика
© 2021 Excel для всех   Войти