Lost your password?


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

Что такое гиперссылка?

Гиперссылка - это не просто отображение адреса на ресурс - это активная ссылка, кликнув на которую может быть открыта

  • интернет-страница в браузере по умолчанию
  • локальный файл на текущем ПК или файл на подключенном сетевом диске
  • директория(папка) на локальном ПК или подключенном сетевом диске

Установить гиперссылку можно несколькими способами: через стандартное меню и путем создания функции.

 
СТАНДАРТНОЕ МЕНЮ
и самый распространенный: правый клик мыши по ячейке -Гиперссылка(Hyperlink)(или вкладка Вставка(Insert) -Ссылка(Hyperlink). Откроется окно добавления гиперссылки.

Там можно выбрать вид ссылки:

  • на файл или веб-страницу. Если на веб-страницу, то необходимо в поле "Адрес" указать адрес веб-страницы. Если ссылка на файл - просто выбрать файл в диспетчере файлов.
  • местом в документе. Выбирается необходимый лист и адрес ячейки, на которую необходимо переместиться по нажатии гиперссылки.
  • новым документом. Создается новый документ и сразу ссылка на него. При нажатии гиперссылки будет открыт этот файл.
  • электронной почтой. Указывается адрес электронной почты и тема письма по умолчанию. По нажатии ссылки будет создано письмо на указанный адрес электронной почты и с указанной темой.

Самый серьезный недостаток этого метода в том, что после сортировки таблиц со множеством таких гиперссылок они неизбежно "ломаются", т.е. перестают работать.
 
Создание гиперссылки кодом VBA выглядит следующим образом:

ActiveSheet.Hyperlinks.Add Anchor:=Range("A1"), _
                               Address:="http://www.excel-vba.ru/", _
                               TextToDisplay:="Перейти на сайт http://www.excel-vba.ru/"

Данный код создаст в ячейке A1 активного листа гиперссылку на сайт http://www.excel-vba.ru/.

  • Range("A1") - это ячейка, в которой будет создана гиперссылка
  • Address(http://www.excel-vba.ru/) - адрес страницы(или путь к файлу или директории), который будет открыт по клике на ячейку
  • TextToDisplay(Перейти на сайт http://www.excel-vba.ru/) - это текст, который будет отображаться в ячейке. Может отличаться от адреса самой ссылки


 
ФУНКЦИЯ ЛИСТА
Гиперссылки можно создавать на листе через одноименную функцию ГИПЕРССЫЛКА (HYPERLINK). Функция расположена в категории Ссылки и массивы диспетчера функций. Такой способ очень удобен, если необходимо создать много гиперссылок на листе.
Синтаксис функции:
=ГИПЕРССЫЛКА("www.excel-vba.ru";"переход на сайт")
=HYPERLINK("www.excel-vba.ru";"переход на сайт")

  • www.excel-vba.ru - адрес страницы(или путь к файлу или директории), который будет открыт по клике на ячейку
  • переход на сайт - текст, который будет отображаться в ячейке. Может отличаться от текста самой ссылки

Конечно, универсальность создания гиперссылок через функцию именно в том, что можно в отдельном столбце записать адреса интернет-страниц, а в другой просто создать на них ссылки. Допустим, если в столбце А у нас ссылки, то в столбец В мы можем записать и протянуть такую формулу:
=ГИПЕРССЫЛКА(A1;"переход на сайт")
Или другой вариант: у нас есть адреса сайта(для примера возьмем этот: "https://www.excel-vba.ru/"), а в столбце А указаны только адреса страниц, без указания домена. Что-то вроде "kak-excel-vosprinimaet-dannye". Т.е. нам необходимо объединить основной адрес с дополнительным. Тогда можно записать так:
=ГИПЕРССЫЛКА("https://www.excel-vba.ru/"&A1;"переход на страницу сайта")
Теперь при клике на ячейку откроется страница https://www.excel-vba.ru/kak-excel-vosprinimaet-dannye.
А можно сделать еще универсальнее - записать вдобавок адрес сайта не статично внутри функции, а в отдельной ячейке. Пусть это будет ячейка D1. Тогда функция будет выглядеть так:
=ГИПЕРССЫЛКА($D$1&A1;"переход на страницу сайта")
Важно учитывать слеши в ячейках. Т.е. если в D1 записан адрес домена без слеша на конце("https://www.excel-vba.ru/"), то его необходимо будет учесть либо в адресах страниц("/kak-excel-vosprinimaet-dannye"), либо напрямую в функции:
=ГИПЕРССЫЛКА($D$1&"/"&A1;"переход на страницу сайта")
Нетрудно догадаться, что таких ссылок можно создать множество простым копированием формулы в другие ячейки и что немаловажно - в столбце А можно записывать разные окончания ссылок. Если вдруг сайт поменял адрес, но система ссылок осталась прежней - надо будет лишь заменить основной адрес. То же самое можно отнести и к файлам на диске: если поменялась лишь корневая директория - то просто меняем её в функции или в ячейке.

ГИПЕРССЫЛКА на конкретную ячейку листа
Так же можно создать гиперссылку, переходящую на определенную ячейку на листе:
=ГИПЕРССЫЛКА("#Лист2!D4";"Перейти в ячейку D4 Лист2")
Обращаю особое внимание на знак решетки(#) перед именем листа - в данном случае он обязателен, т.к. указывает функции, что переход будет осуществляться внутри листов книги, в которой записана гиперссылка.
Ссылку на ячейку можно указывать динамически, ссылаясь на определенную ячейку, не вписывая её адрес(на примере D4):
=ГИПЕРССЫЛКА("#Лист2!"&D4);"Перейти в ячейку "&D4&" Лист2")
Или более классическая ситуация - в столбце А у нас записаны имена листов, а в столбце В нам необходимо сделать гиперссылки на ячейку D4 отдельно для каждого листа. Иными словами - оглавление. Тогда в ячейку В1 запишем функцию:
=ГИПЕРССЫЛКА("#'"&A1&"'!D4");"Перейти на лист")

Важно: Обращаю внимание на функцию выше - она несколько отличается от приведенных ранее. Если в имени листа содержатся пробелы(или иные знаки препинания, кроме точки и нижнего подчеркивания), то обязательно после знака решетки и перед восклицательным знаком ставить знаки апострофа(')
"#'Москва Январь'!D4"
Если для таких ссылок не указать апостроф, то получим ошибку "Неверная ссылка".
Если же пробелов и иных символов в имени листа нет - указание апострофа не вызовет ошибку. Поэтому для подстраховки, в подобных случаях правильнее всегда указывать апострофы, чтобы избежать неверных ссылок.


Можно так же переходить на ячейки листа в другой книге:
=ГИПЕРССЫЛКА("#'[Продажи 2011.xls]Москва'!D4";"Перейти в книгу продаж - на лист Москва")
Здесь есть существенное ограничение: книга, на которую ссылается функция ГИПЕРССЫЛКА, должна быть открыта. И обязательно должна быть заключена в квадратные скобки, как в примере выше.

Важно: Если в имени книги или листа содержатся пробелы(или иные знаки препинания, кроме точки и нижнего подчеркивания), то обязательно после знака решетки и перед восклицательным знаком ставить апостроф('). Я специально в функции выше привел пример именно с пробелом(Продажи 2011.xls) - для наглядности.
При этом, как уже упоминал выше - неважно, пробел в имени листа или книги:
=ГИПЕРССЫЛКА("#'[Продажи.xls]Москва Январь'!D4");"Перейти в ячейку D4")
И если не уверены в том, будет ли имя листа и книги содержать такие символы(например, если адрес для перехода составляется из ссылок на другие ячейки) - лучше в формуле проставлять апострофы всегда. Ошибкой это не будет и гиперссылка будет работать, даже если таких символов в имени не окажется.

ГИПЕРССЫЛКА для открытия файла
При помощи функции ГИПЕРССЫЛКА так же можно указать путь к файлу, который необходимо открыть по нажатии ячейки:
=ГИПЕРССЫЛКА("C:\Users\Дмитрий\Desktop\Книга 1.xls";"Открыть книгу Книга 1.xls")
Путь должен быть корректным, а имя файла необходимо указывать с расширением.

Ложка дегтя
В качестве адреса для функции ГИПЕРССЫЛКА нельзя применить и открытие книги и одновременный переход на нужный лист и ячейку этой книги. Т.е. нельзя указать что-то вроде:
=ГИПЕРССЫЛКА("C:\Users\Дмитрий\Desktop\Книга1.xls#Лист2!D4";"Открыть книгу Книга 1.xls")
Это связано с ограничением именно самой функции и на момент написания статьи точно не работало.

Так же см.:
Как массово изменить гиперссылки?
Как получить адрес гиперссылки из ячейки
Как сделать гиперссылку на процедуру?


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

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

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

    Здравствуйте!
    А как с помощью гиперссылки ссылатся на программный код модуля. Т.е. создать кнопку "посмотреть код" (excel 2007).

  2. Дмитрий:

    А как через формулу получить адрес гиперссылки?
    тоесть у нас есть ячейка сореджащая гиперссылку, мне нужен её адрес
    чтото типа
    Ячейка = ГИПЕРССЫЛКА(адрес;имя)- создает гиперссылку
    ГИПЕРССЫЛКА_ПАРСЕР(Ячейка;"адрес") - Возвращает адрес из ячейки

  3. Дмитрий - через формулу никак. Только с применением макросов (создание пользовательской функции).

  4. Вера:

    Добрый день! В ячейках текст=ссылке на файл. Возможно ли сделать из них гиперссылки не по одному, а "оптом"?

  5. Вера, а чем описанный метод не подходит?
    =ГИПЕРССЫЛКА(A1;"переход на сайт")

  6. Вера:

    @Дмитрий(Админ)
    Спасибо! Получилось сделать ссылки более чем на 800 файлов за несколько секунд. Я правильно понимаю, что теперь вместо одного столбца, будет два, т.к. планируется дальнейшее использование "текстовых путей"?

  7. Да, совершенно верно.

  8. Елена:

    здравствуйте,
    попробовала сделать динамическую ссылку =HYPERLINK("#Sheet2!"&CELL("address";Sheet2!B5);"динамическая ссылка на ячейку") не получилось, что я сделала не так и в чем смысл этой ссылки, что она делает?

  9. Елена, смысл ссылки описан выше в статье с примером самой фукнции(посмотрите на пример, сравните со своим и найдите отличия). Почитайте справку по функции ЯЧЕЙКА(CELL) и может поймете почему не работет. Запишите эту функцию отдельно и посмотрите результат - у Вас функция вернет не просто адрес, а еще и имя Книги и Листа, что совершенно лишнее в данном случае.

  10. Сергей:

    Здравствуйте как реализовать такую задачу:
    делается гиперссылка на ячейку с текстом и затем при добавлении страниц перед этой ячейкой ссылка все равно переходила на ячейку с этими данными в одном листе

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

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


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