Вставка гиперссылок на листы в Excel макрос
Добрый день уважаемые читатели блога! После небольшого перерыва возобновляю работу по Excel. Вопросов накопилось довольно много - буду отвечать на них по очереди.
Сегодня речь пойдёт о гиперссылках в Excel, точнее об их автоматической вставке на лист. Представим ситуацию, когда в нашей книге листов огромное количество, бухгалтерские расчёты, к примеру.
Вставить вручную гиперссылки можно, пусть для этого и понадобится чуть больше времени. Обычно мы вставляем гиперссылки через вкладку "Вставка" и кнопку "Гиперссылка", а затем переходим на пункт "Место в документе".
Видите, уже сложнее. Проделать такую операцию с точки зрения лени времени будет слишком затратно. Поэтому напишем небольшой макрос.
Вставим в наш документ новый модуль:
- Вкладка "Разработчик", блок кнопок "Код", кнопка "Visual Basic";
- Далее "Insert" - > "Module".
Поместим в поле кода следующий текст:
Sub SheetNamesAsHyperLinks()
Dim sheet As Worksheet
Dim cell As Range
With ActiveWorkbook
' Для каждого листа (имени) создадим свою ссылку
For Each sheet In ActiveWorkbook.Worksheets
Set cell = Worksheets(1).Cells(sheet.Index, 1)
.Worksheets(1).Hyperlinks.Add Anchor:=cell, Address:="", _
SubAddress:=" " & sheet.Name & "!A1"
cell.Formula = sheet.Name
Next
End With
End Sub
Немного подробностей:
- у нас есть две переменные "sheet" и "cell", лист и ячейка;
- "With activeWorkbook" - показывает, что макрос будет оперировать пространством всей книги;
- "For Each sheet In ActiveWorkbook.Worksheets
Set cell = Worksheets(1).Cells(sheet.Index, 1)
.Worksheets(1).Hyperlinks.Add Anchor:=cell, Address:="", _
SubAddress:=" " & sheet.Name & "!A1" " " - для каждого листа в рабочей книге мы будем использовать первую ячейку (А1); - "cell.Formula = sheet.Name" - формула для макроса будет помещение в ячейку A1 названия первого листа книги, далее в A2 второго и т.д.
Таким образом, мы экономим себе время на переходах, так как не отвлекаемся на нижнюю часть экрана с именами листов, а имеем список листов в виде гиперссылок. Понаблюдаем за результатами работы. Нажимаем сочетание клавиш ALT+F8 или переходим на вкладку "Разработчик", нажимаем кнопку "Макросы", у нас единственная строка "SheetNamesAsHyperLinks", нажимаем "Выполнить".
На листе "Оглавление" появится список всех существующих листов в нашей рабочей книге.
Теперь мы можем просто щёлкать ячейку с именем листа для перехода.
Если что-то было непонятно, посмотрите наше видео!
Вас может заинтересовать урок - Поменять строки местами.