Перейти к содержимому
Наше приложение «Дешевые авиабилеты» в AppGallery >>

VBA Excel. Метод Hyperlinks.Add (создание гиперссылки)

    Создание гиперссылки в VBA Excel методом Hyperlinks.Add для перехода на другой лист, на интернет-сайт, для открытия любого файла в программе по умолчанию.

    Метод Hyperlinks.Add

    Hyperlinks.Add — это метод, который добавляет новую гиперссылку к указанному объекту Range (диапазону, ячейке) или объекту Shape (фигуре).

    Синтаксис

    Expression — выражение (переменная), возвращающее объект Hyperlinks.

    Параметры

    Параметр Описание
    Anchor Объект Range или объект Shape, к которому привязывается (добавляется) новая гиперссылка. Обязательный параметр. Тип данных — Object.
    Address Адрес гиперссылки. Обязательный параметр. Тип данных — String.
    SubAddress Субадрес гиперссылки. Необязательный параметр. Тип данных — Variant.
    ScreenTip Всплывающая подсказка, отображаемая при наведении указателя мыши на текст гиперссылки. Необязательный параметр. Тип данных — Variant.
    TextToDisplay Текст гиперссылки. Необязательный параметр. Тип данных — Variant.

    Если текст гиперссылки (TextToDisplay) не указан, будет отображен текст параметров Address и SubAddress.

    Создание гиперссылок

    Гиперссылка на другой лист

    Создание гиперссылки на рабочий лист другой книги:

    Создание гиперссылки на другой лист текущей книги:

    Создание гиперссылки на другую ячейку того же листа:

    Гиперссылка на любой файл

    Создание гиперссылки на документ Word:

    Создание гиперссылки на точечный рисунок:

    Гиперссылка на интернет-сайт

    Пример добавления гиперссылки на рубрику «VBA Excel» сайта «Время не ждёт»:

    Поиск гиперссылок в диапазоне

    Поиск первой ячейки с гиперссылкой в заданном диапазоне:

    Для поиска последней ячейки с гиперссылкой в заданном диапазоне следует заменить строку
    For i = 1 To n
    на
    For i = n To 1 Step -1.


    Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

    12 комментариев для “VBA Excel. Метод Hyperlinks.Add (создание гиперссылки)”

    1. Здравствуйте, Евгений.
      Подскажите пожалуйста, как можно определить адрес ячейки, которая содержит гиперссылку? А если ячеек с гиперссылками несколько, то как определить адрес последней (нижней правой) из них?

      1. Евгений

        Здравствуйте, Юрий!
        Ответ добавил в конец статьи.

    2. Добрый день!
      Скажите, пожалуйста, как сделать, чтобы в переменную Address:= вставлять не конкретный адрес, а скопированную ссылку из буфера обмена?
      Заранее спасибо!

      1. Решил проблему вот так вот:

    3. Добрый день!
      У меня в очередной раз «зачудила» книга Excell. Сама поменяла родные адреса гиперссылок в Инет во многих ячейках на один, которые понравившейся ей, меняя лишь концовку 1649, 1650, …. .
      В отладчике VBA вышел на этот список подмены: Range("L10"). Hyperlinks.Items 1.Formyla[1…5] содержащий 5 вставляемых ею адресов. В VBA не удалось добраться до этих формул.
      Скажите, пожалуйста, можно ли программно восстановить стоящие ранее адреса? И как это сделать? И можно ли ей запретить так своевольничать?

      1. Евгений

        Здравствуйте, Павел!
        Я не знаю, как восстановить предыдущую версию файла Excel. Есть что-то у разработчиков, но это не программно.
        Код, который перезаписывает гиперссылки, поищите в модулях книги и листа. Процедуры, размещенные в этих модулях, могут запускаться самостоятельно при совершении определенных событий, к которым они привязаны.

        1. Здравствуйте, Евгений!
          Спасибо за ответ. Отрицательный ответ, когда книга шибко нужна, лишь стимулирует поиск решения. Буду делать ей “костыли”, гиперссылки превращу в обычный текст и, как лучший вариант, хотел бы запускать их программно без привязки к конкретной ячейке конкретного листа конкретной книги.
          Скажите, пожалуйста, есть ли возможность программно запускать гиперссылку на открытие страницы в Инете? Без привязки к конкретной ячейке.

          1. Евгений

            Здравствуйте, Павел!
            Открыть страницу сайта можно методом FollowHyperlink. Этот метод может не работать в старых версиях Excel.

    4. Здравствуйте, Евгений!
      Спасибо за ответ. Предложенный Вами метод работает в моей версии.

    5. Алексей

      Добрый день!
      Может мне кто-нибудь подсказать в чем ошибка в коде.
      Задумка такая есть две зависимые/независимые книги. (они обновляют данные посредством извлечения оных друг из друга)
      В общем то это производится посредством макроса который создает массив в который записываются данные из «книги 1», а после из массива данные попадают в «книгу 2».
      ПРОБЛЕМА в том, что таким образом извлекаются только данные в ячейках (текст), но в одной колонке содержатся гиперссылки поверх текста. И их мне тоже надо извлечь для копирования в другую книгу. Собственно это реализовано через массив в который записываются в качестве String адреса гиперссылок извлеченные через Hyperlink.Address.
      Проблем с извлечением данных адресов и записи их в массив не было. Они возникли на моменте присвоения ячейкам(заполненным) гиперссылки.
      Это запись в массив адресов:

      Компилятор выдает мне ошибку на фрагменте присвоения адреса — Address:=UA

    6. Вороненко Андрей

      Можно разъяснить почему не работает такая текстовка?

      Worksheets(2).Hyperlinks.Add Anchor:=Range("A1"), Address:="https://vremya-ne-zhdet.ru/category/vba-excel/", ScreenTip:="тест", TextToDisplay:="Рубрика VBA Excel"

      Если мне не важен активный лист, нужно всегда на 2 листе была гиперссылка? Но эта формула только в активный лист?

      1. Евгений

        Здравствуйте, Андрей!
        Вы указываете ячейку на активном листе. Замените Anchor:=Range("A1") на Anchor:=Worksheets(2).Range("A1").

    Обсуждение закрыто.