Что такое гиперссылка?
-либо откроется страница интернет в браузере по умолчанию
-либо будет открыт файл, на который ведет ссылка
-либо будет открыта директория(папка), к которой ведет ссылка.
Установить гиперссылку можно двумя способами.
и самый распространенный: правый клик мыши по ячейке-Гиперссылка
Там можно выбрать вид ссылки:
- на файл или веб-страницу. Если на веб-страницу, то необходимо в поле "Адрес" указать адрес веб-страницы. Если ссылка на файл - просто выбрать файл в диспетчере файлов.
- местом в документе. Выбирается необходимый лист и адрес ячейки, на которую необходимо переместиться по нажатии гиперссылки.
- новым документом. Создается новый документ и сразу ссылка на него. При нажатии гиперссылки будет открыт этот файл.
- электронной почтой. Указывается адрес электронной почты и тема письма по умолчанию. По нажатии ссылки будет создано письмо на указанный адрес электронной почты и с указанной темой.
Самый серьезный недостаток этого метода в том, что после сортировки таблиц со множеством таких гиперссылок они неизбежно "ломаются", т.е. перестают работать.
Создание гиперссылки кодом VBA выглядит следующим образом:
ActiveSheet.Hyperlinks.Add Anchor:=Range("A1"), _ Address:="/", _ TextToDisplay:="/" |
Range(
Address(
TextToDisplay(
через функцию ГИПЕРССЫЛКА
Сама функция расположена в категории Ссылки и массивы диспетчера функций.
При применении такого способа создания гиперссылки Вы можете далее указать помимо основного адреса еще и указание на конкретную страницу через ссылку на ячейку:
в ячейке B1 - chto-umeet-excel/. Теперь при клике на ячейку в браузере по умолчанию откроется страница http://www.excel-vba.ru/chto-umeet-excel/
Нетрудно догадаться, что таких ссылок можно создать множество простым копированием формулы в другие ячейки и что немаловажно - в столбце В можно записывать разные окончания ссылок. Если вдруг сайт поменял адрес, но система ссылок осталась прежней - Вам надо будет лишь заменить основной адрес и все. То же самое можно отнести и к файлам на диске: если поменялась лишь корневая директория - то просто меняем её в формуле.
Так же можно создать гиперссылку, переходящую на определенную ячейку на листе:
Решетка перед именем листа указывает функции, что переход будет осуществляться в указанную точку открытого документа и поэтому путь документа для открытия не нужен.
Ссылку на ячейку можно указывать динамически, ссылаясь на определенную ячейку, не вписывая её адрес(на примере D2):
Можно указать ссылку на ячейку листа в другой книге:
Или указать путь к файлу, который необходимо открыть по нажатии ячейки:
При использовании гиперссылки из функции для открытия книги нельзя применить так же переход на нужный лист и ячейку. Это связано с ограничением именно самой функции. Т.е. нельзя указать что-то вроде:
Важно: Книга, на которую ссылается функция ГИПЕРРСЫЛКА должна быть открыта. Если в имени книги или листа содержатся пробелы(или иные знаки препинания, кроме точки и нижнего подчеркивания), то обязательно в начале имени книги (перед [ ) и после имени листа ставить апостроф('). Я специально в одной из последних функций привел пример именно с пробелом - для наглядности:
=ГИПЕРССЫЛКА("# ' [Другая книга.xls]Лист2' !"&ЯЧЕЙКА("адрес";D4);"Перейти в ячейку "&ЯЧЕЙКА("адрес";D4)&" Лист2 Другая книга.xls")
Поэтому если не уверены в том, будет ли имя листа и книги содержать такие символы, лучше в формуле проставлять апострофы всегда. Ошибкой это не будет и гиперссылка будет работать, даже если таких символов в имени не окажется.
Так же см.:
Как массово изменить гиперссылки?
Как получить адрес гиперссылки из ячейки
Как сделать гиперссылку на процедуру?
Статья помогла? Поделись ссылкой с друзьями!

Поиск по меткам
Access apple watch Multex Power Query и Power BI VBA управление кодами Бесплатные надстройки Дата и время Записки ИП Надстройки Печать Политика Конфиденциальности Почта Программы Работа с приложениями Разработка приложений Росстат Тренинги и вебинары Финансовые Форматирование Функции Excel акции MulTEx ссылки статистикаКомментарии, не имеющие отношения к комментируемой статье, могут быть удалены без уведомления и объяснения причин. Если есть вопрос по личной проблеме - добро пожаловать на Форум
Добрый день! Есть столбец значения которого - это гиперссылки на разные рессурсы.
Как эти ссылки превратить в слова, из которых эти ссылки состоят
Наталия, прямо под статьей есть ссылка на статью: Как получить адрес гиперссылки из ячейки
Пройдите, прочитайте.
Добрый день!
Дмитрий, подскажите, пожалуйста, возможно ли перейти на лист, имя которого берется из ячейки?
К примеру,
=ГИПЕРССЫЛКА("#"&H12&"'!A1";"Перейти на лист "&H12&" ячейку А1")
вопрос решил) забыл, что имя листа с пробелами и не вставил апострофы.
=ГИПЕРССЫЛКА("#'"&H12&"'!A1";"Перейти на лист "&H12&" ячейку А1")
Спасибо вам за ваш сайт!!!
Ну, очень выручает!!!
Подскажите, Формула ВПР не открывает гиперссылку, которая привязана к значению которую она возвращает.
Как можно написать формулу, чтобы открывалась гиперссылка?
Катерина, смотря что именно возвращает ВПР. Если она возвращает непосредственно адрес для ссылки, то просто добавить ГИПЕРССЫЛКА:
=ГИПЕРССЫЛКА(ВПР(что-то там в аргументах);"перейти")
Если ВПР возвращает просто значение ячейки, а сама ссылка является гиперссылкой внутри искомой ячейки - то здесь без макросов никак не получится.
Добрый вечер!
Подскажите пожалуйста как сделать автозамену для URL файлов ,если они в разных форматах (http,www и др)?
Заранее благодарна!
Добрый день,
в ячейке которая копируется содержится гиперссылка. В ячейке в которую зиписал получился обычный текст (. Как лечить данный код?
ThisWorkbook.Worksheets(1).Cells(j, l).Value = ThisWorkbook.Worksheets(1).Cells(i, 1).Value
Алексей, если прочитаете статью - то увидите код вставки гиперссылки в ячейку:
ActiveSheet.Hyperlinks.Add Anchor:=Range("A1"), _
ThisWorkbook.Worksheets(1).Hyperlinks.Add Anchor:=ThisWorkbook.Worksheets(1).Cells(j, l), _
ThisWorkbook.Worksheets(1).Cells(i, 1).Copy ThisWorkbook.Worksheets(1).Cells(j, l)
Address:="/", _
TextToDisplay:="/"
Вам нужно делать точно так же, но применительно к своей ситуации:
Address:=ThisWorkbook.Worksheets(1).Cells(i, 1).Value, _
TextToDisplay:=ThisWorkbook.Worksheets(1).Cells(i, 1).Value
либо и вовсе просто скопировать ячейку полностью: