Lost your password?


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

Как сделать гиперссылку на процедуру?

В своих статьях я часто прикладываю примеры с кодами. Т.к. мой сайт ориентирован как на знающих программирование в Visual Basic for Application(VBA), так и на начинающих, я в примерах почти всегда на первом листе делаю кнопку, по нажатию которой можно сразу же перейти в редактор VBA на нужный код без каких-либо лишних телодвижений. Как-то меня уже просили разъяснить каким способом я это делаю. Вот сегодня на одном из форумов попросили в очередной раз, что и побудило меня сесть и написать эту статью. Итак, к сути.

На самом деле это не так уж и сложно. Для начала необходимо создать хоть какой-то код(макрос) внутри книги(предполагается, что это вы умеете уже. Если нет - статья в помощь). Предположим, что наш макрос расположен в модуле Module1 и называется он Макрос1. Теперь создадим кнопку для вызова этого макроса, если необходимо. А после этого создадим еще одну кнопку(я использую для этих целей автофигуры), по нажатию на которую мы и будем попадать сразу в тело нужного нам макроса.


Способ 1:
Жмем на созданной фигуре правой кнопкой мыши. Выбираем в появившемся меню Гиперссылка:
Добавить гиперссылку
Выбираем "Файлом, веб-страницей"(этот пункт открывается по умолчанию) и вписываем в поле Адрес:: #Module1.Макрос1
Создание гиперссылки
Вот и все. Наша ссылка готова.
Решетка(#) перед именем модуля указывает, что ссылка ведет на путь внутри документа. Она обязательна. После имени модуля(Module1) ставится точка, после которой указывается имя процедуры(Макрос1) или функции, на которую должна перейти гиперссылка. Никаких пробелов или иных символов быть не должно.

С прочими возможностями гиперссылок и методах из создания можно ознакомиться в статье: Что такое гиперссылка?


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

Sub GoTo_Sub()
    Application.Goto "Module1.Макрос1"
End Sub

А созданной кнопке назначаем выполнение именно этого макроса - GoTo_Sub. Главный недостаток этого метода в том, что придется для каждой процедуры либо создавать новую процедуру с переходом, либо действовать через всевозможные конструкции типа If...Then, Select Case, что не очень удобно. Но данный метод может быть использован и в других целях. Например, для перехода в конкретную процедуру при возникновении ошибки в другой процедуре.

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


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

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

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

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


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