Содержание макросом в excel

Если в вашей рабочей книге Excel число листов перевалило за второй десяток, то навигация по листам начинает становится проблемой. Одним из красивых способов ее решения является создание листа-оглавления с гиперссылками, ведущими на соответствующие листы книги:

toc1.png

Есть несколько способов реализовать подобное.

Видео

Способ 1. Создаваемые вручную гиперссылки

Вставьте в книгу пустой лист и добавьте на него гиперссылки на нужные вам листы, используя команду Вставка — Гиперссылка (Insert — Hyperlink). В открывшемся окне нужно выбрать слева опцию Место в документе и задать внешнее текстовое отображение и адрес ячейки, куда приведет ссылка:

toc2.png

Для удобства можно создать также и обратные ссылки на всех листах вашей книги, которые будут вести назад в оглавление. Чтобы не заниматься ручным созданием гиперссылок и копированием их потом на каждый лист, лучше использовать другой метод — функцию ГИПЕРССЫЛКА (HYPERLINK). Выделяем все листы в книге, куда хотим добавить обратную ссылку (для массового выделения листов можно использовать клавиши Shift и/или Ctrl) и в любую подходящую ячейку вводим функцию следующего вида:

=ГИПЕРССЫЛКА(«#Оглавление!A1″;»Назад в оглавление»)

Эта функция создаст в текущей ячейке на всех выделенных листах гиперссылку с текстом «Назад в оглавление», щелчок по которой будет возвращать пользователя к листу Оглавление.

Способ 2. Динамическое оглавление с помощью формул

Это хоть и слегка экзотический, но весьма красивый и удобный способ создания автоматического листа оглавления вашей книги. Экзотический – потому что в нем используется недокументированная XLM-функция ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ (GET.WORKBOOK), оставленная разработчиками для совместимости со старыми версиями Excel. Эта функция выгружает список всех листов текущей книги в заданную переменную, из которой мы потом можем их извлечь и использовать в нашем оглавлении.

Откройте Диспетчер Имен на вкладке Формулы (Formulas – Name Manager) и создайте новый именованный диапазон с именем, допустим, Оглавление. В поле Диапазон (Reference) введите вот такую формулу:

toc3.png

=ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1)
=GET.WORKBOOK(1)

Теперь в переменной Оглавление содержатся наши искомые имена. Чтобы извлечь их оттуда на лист, можно воспользоваться функцией ИНДЕКС (INDEX), которая «выдергивает» элементы из массива по их номеру:

=ИНДЕКС(Оглавление; СТРОКА())
=INDEX(Оглавление; ROW())

Функция СТРОКА (ROW) выдает номер текущей строки и, в данном случае, нужна только для того, чтобы вручную не создавать отдельный столбец с порядковыми номерами извлекаемых элементов (1,2,3…). Таким образом, в ячейке А1 у нас получится имя первого листа, в А2 – имя второго и т.д.

toc4.png

Неплохо. Однако, как можно заметить, функция выдает не только имя листа, но и имя книги, которое нам не нужно. Чтобы его убрать, воспользуемся функциями ЗАМЕНИТЬ (SUBST) и НАЙТИ (FIND), которые найдут символ закрывающей квадратной скобки ( ] ) и заменят весь текст до этого символа включительно на пустую строку («»). Откроем еще раз Диспетчер имен с вкладки Формулы (Formulas — Name Manager), двойным щелчком откроем созданный диапазон Оглавление и изменим его формулу:

=ЗАМЕНИТЬ(ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1);1;НАЙТИ(«]»;ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1));»»)
=SUBST(GET.WORKBOOK(1);1;FIND(«]»;GET.WORKBOOK(1));»»)

Теперь наш список листов будет выглядеть существенно лучше:

toc5.png

Небольшая побочная трудность заключается в том, что наша формула в именованном диапазоне Оглавление будет пересчитываться только при вводе, либо при принудительном пересчете книги нажатием на сочетание клавиш Ctrl+Alt+F9. Чтобы обойти этот неприятный момент, добавим к нашей формуле небольшой «хвост»:

=ЗАМЕНИТЬ(ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1);1;НАЙТИ(«]»;ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1));»»)&Т(ТДАТА())
=SUBST(GET.WORKBOOK(1);1;FIND(«]»;GET.WORKBOOK(1));»»)&T(NOW())

Функция ТДАТА (NOW) выдает текущую дату (с временем), а функция Т превращает эту дату в пустую текстовую строку, которая затем приклеивается к нашему имени листа с помощью оператора склейки (&). Т.е. имя листа, фактически, не меняется, но поскольку функция ТДАТА пересчитывается и выдает новое время и дату при любом изменении листа, то и остальная часть нашей формулы вынуждена будет заново пересчитаться тоже и – как следствие – имена листов будут обновляться постоянно.

Для скрытия ошибок #ССЫЛКА (#REF), которые будут появляться, если скопировать нашу формулу с функцией ИНДЕКС на большее количество ячеек, чем у нас есть листов, можно использовать функцию ЕСЛИОШИБКА (IFERROR), которая  перехватывает любые ошибки и заменяет их на пустую строку («»):

toc6.png

И, наконец, для добавления к именам листов «живых» гиперссылок для быстрой навигации, можно использовать все ту же функцию ГИПЕРССЫЛКА (HYPERLINK), которая будет формировать адрес для перехода из имени листа:

toc7.png

Способ 3. Макрос

И, наконец, для создания оглавления можно использовать и несложный макрос. Правда, запускать его придется каждый раз при изменении структуры книги — в отличие от Способа 2, макрос их сам не отслеживает.

Откройте редактор Visual Basic, нажав Alt+F11 или выбрав (в старых версиях Excel) в меню Сервис — Макрос — Редактор Visual Basic (Tools — Macro — Visual Basic Editor). В открывшемся окне редактора создайте новый пустой модуль (меню Insert — Module) и скопируйте туда текст этого макроса:

Sub SheetList()
   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

Закройте редактор Visual Basic и вернитесь  в Excel. Добавьте в книгу чистый лист и поместите его на первое место. Затем нажмите Alt+F8 или откройте меню Сервис — Макрос — Макросы (Tools — Macro — Macros). Найдите там созданный макрос SheetList и запустите его на выполнение. Макрос создаст на первом листе книги список гиперссылок с названиями листов. Щелчок по любой из них переместит Вас на нужный лист.

Для удобства можно создать также и обратные ссылки на всех листах вашей книги, которые будут вести назад в оглавление, как это было описано в Способе 1.

Ссылки по теме

  • Что такое макрос, как его создать, куда копировать текст макроса, как запустить макрос?
  • Автоматическое создание оглавления книги одной кнопкой (надстройка PLEX)
  • Отправка писем с помощью функции ГИПЕРССЫЛКА
  • Быстрый переход между листами книги Excel

Skip to content

Как создать оглавление

На чтение 4 мин. Просмотров 3k.

Что делает макрос: Создать оглавление книги — наиболее запрашиваемый макрос Excel.
Нам часто приходится работать с файлами, которые имеют много вкладок. Таблица содержания определенно помогает.
Следующий макрос не только создает список имен рабочих таблиц в книге, но он также показывает гиперссылки, так что вы можете легко перейти к листу с простым нажатием кнопки.

Содержание

  1. Как макрос работает
  2. Код макроса
  3. Как этот код работает
  4. Как использовать

Как макрос работает

На первый взгляд данный макрос выглядит сложным. Тем не менее, рассмотрим несколько простых действий, как это происходит

  1. Удаляет любую предыдущую таблицу Содержание листа
  2. Создает новую таблицу Содержание листа
  3. Захватывает имя каждого листа и вставляет его в оглавлении
  4. Добавляет гиперссылку к каждой записи в оглавлении

Код макроса

Sub SozdatOglavlenie()
'Шаг 1: Объявить переменные
Dim i As Long
'Шаг 2: Удалить предыдущий лист с названием Оглавление и перейти к 'следующему
On Error Resume Next
Application.DisplayAlerts = False
Sheets("Table Of Contents").Delete
Application.DisplayAlerts = True
On Error GoTo 0
'Шаг 3: Добавить новый лист в качестве первого
ThisWorkbook.Sheets.Add _
Before:=ThisWorkbook.Worksheets(1)
ActiveSheet.Name = "Оглавление"
'Шаг 4: Запустить счетчик
For i = 1 To Sheets.Count
'Шаг 5: Выбрать следующую доступную строку
ActiveSheet.Cells(i, 1).Select
'Шаг 6: Добавить имя листа и гиперссылку
ActiveSheet.Hyperlinks.Add _
Anchor:=ActiveSheet.Cells(i, 1), _
Address:="", _
SubAddress:="'" & Sheets(i).Name & "'!A1", _
TextToDisplay:=Sheets(i).Name
'Шаг 7: Цикл назад приращение I
Next i
End Sub

Как этот код работает

  1. Шаг 1 объявляет целую переменную с именем I, чтобы служить в качестве счетчика, который перебирает листы.
  2. В предыдущих макросах переменная выбирала каждый рабочий лист. В этой процедуре мы используем счетчик (наша переменная I). Основная причина в том, что мы не только должны следить за листами, но мы также должны суметь ввести имя каждого листа на новую строку в таблицу оглавления. Идея заключается в том, что, как счетчик проходит через листы, он также служит для перемещения курсора вниз в таблице содержания, каждая новая запись идет на новую строку.
  3. Шаг 2, по существу пытается удалить любой предыдущий лист под названием «Оглавление». Шаг 2 должен начаться с On Error Resume Next — обработчика ошибок. Если возникает ошибка — происходит удаление оглавления листа с использованием метода DisplayAlerts. Наконец, мы сбрасываем обработчик ошибок, снова введя On Error GoTo 0.
  4. На шаге 3 добавляем новый лист в книгу, используя аргумент, чтобы поместить новый лист в качестве первого листа. Затем именуется лист как «Оглавление». Как мы уже упоминали ранее в этой части, при добавлении нового рабочего листа, то он автоматически становится активным. Поскольку этот новый лист имеет фокус на протяжении всей процедуры, любые ссылки на ActiveSheet в этом коде, обращаются к таблице содержания листа.
  5. Шаг 4 запускает счетчик I и происходит подсчет всех листов в книге. Когда будет достигнуто максимальное количество листов, конец макрокоманды.
  6. Шаг 5 выбирает соответствующую строку в таблице содержания листа. То есть, если счетчик на 1, он выбирает первую строку в таблице содержания листа. Если счетчик I находится в 2, она выбирает вторую строку, и так далее.
  7. Мы можем сделать это с помощью пункта меню Cells. Элемент
    Cells обеспечивает чрезвычайно удобный способ выбора диапазонов с помощью кода. Для этого требуется только относительные строки и столбца позиции в качестве параметров. Таким образом, клетки (1,1) приводит к строке 1, столбец 1 (или ячейку A1). Ячейка (5, 3) приводит к 5-й строке, столбце 3 (или ячейка C5). Числовые параметры в пункте ячейки особенно удобны, когда вы хотите, чтобы цикл шел через серию строк или столбцов, используя увеличивающееся номер индекса.
  8. Шаг 6 использует метод Hyperlinks.Add, чтобы добавить имя листа и гиперссылки к выбранной ячейке. Параметры методом Hyperlinks.Add необходимы для построения гиперссылок.
  9. Последний шаг в макросе возвращает к началу цикла приращения счетчика I к следующему. Когда счетчик достигает числа I конец макрокоманд.

Как использовать

Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код во вновь созданном модуле.

Как сделать оглавление в Excel

Описание проблемы

Когда количество листов в книге становится более 10-15 штук, то начинаются трудности с навигацией.

И хорошо, когда листы можно расположить по алфавиту. Но что делать, когда сортировать листы нельзя?

Создание оглавление с помощью надстройки

Надстройка VBA-Excel содержит диспетчер листов в котором расположена команда Создать оглавление книги.

Для того чтобы создать оглавление:

  1. Откройте вкладку меню VBA-Excel
  2. Откройте меню Диспетчеры и выберите Диспетчер листов
  3. Выберите команду Оглавление, нажав по ней левой кнопкой мыши.
  4. В книге появится лист Оглавление, который будет выглядеть так, как показано на рисунке. Наименование листов в оглавление содержат гиперссылки, для быстрого перехода к нужному листу.

Внимание! Если в файле уже имеется лист Оглавление, макрос его удалит и создаст новое оглавление.

Оглавление книги на основе гиперссылок в MS EXCEL

Создадим оглавление Книги с помощью функции ГИПЕРССЫЛКА() .

Пусть в книге имеется несколько листов: к103, к104, к105, . (например перечень комнат). Составим оглавление, позволяющее быстро перемещаться по листам книги (см. файл примера ).

Создадим в столбце А перечень названий листов книги. В ячейке В9 запишем формулу:

= ГИПЕРССЫЛКА(«[«&$B$6&»]»&A9&»!A1″;»Нажмите ссылку, чтобы перейти на Лист «&A9&», в ячейку А1″)

в ячейке В6 содержится имя текущей книги (подробнее читайте в статье Извлечение имени файла). В случае, если книга будет переименована, оглавление продолжит работать.

Если книгу не планируется переименовывать, то имя книги можно указать в текстовой форме:

=ГИПЕРССЫЛКА(«[_Оглавление_с_гиперссылками.xlsx]к103!A1»;»Нажмите ссылку, чтобы перейти на Лист «&A9&», в ячейку А1″)

При нажатии гиперссылки MS EXCEL перейдет в окно соответствующего листа.

Для обратного перехода к оглавлению можно создать ссылку с помощью стандартного механизма гиперссылок, нажав CTRL+K или через меню Вставка/ Связи/ Гиперссылка (после вызова окна Вставка гиперссылки выберите Связать с: местом в документе).

Примечание: Ссылки, созданные с использованием стандартного механизма гиперссылок перестают работать при переименовании листов.

Оглавление книги Excel

Если в вашей рабочей книге Excel число листов перевалило за второй десяток, то навигация по листам начинает становится проблемой. Одним из красивых способов ее решения является создание листа-оглавления с гиперссылками, ведущими на соответствующие листы книги:

Есть несколько способов реализовать подобное.

Способ 1. Создаваемые вручную гиперссылки

Вставьте в книгу пустой лист и добавьте на него гиперссылки на нужные вам листы, используя команду Вставка — Гиперссылка (Insert — Hyperlink) . В открывшемся окне нужно выбрать слева опцию Место в документе и задать внешнее текстовое отображение и адрес ячейки, куда приведет ссылка:

Для удобства можно создать также и обратные ссылки на всех листах вашей книги, которые будут вести назад в оглавление. Чтобы не заниматься ручным созданием гиперссылок и копированием их потом на каждый лист, лучше использовать другой метод — функцию ГИПЕРССЫЛКА (HYPERLINK) . Выделяем все листы в книге, куда хотим добавить обратную ссылку (для массового выделения листов можно использовать клавиши Shift и/или Ctrl) и в любую подходящую ячейку вводим функцию следующего вида:

=ГИПЕРССЫЛКА(«#Оглавление!A1″;»Назад в оглавление»)

Эта функция создаст в текущей ячейке на всех выделенных листах гиперссылку с текстом «Назад в оглавление», щелчок по которой будет возвращать пользователя к листу Оглавление.

Способ 2. Динамическое оглавление с помощью формул

Это хоть и слегка экзотический, но весьма красивый и удобный способ создания автоматического листа оглавления вашей книги. Экзотический – потому что в нем используется недокументированная XLM-функция ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ (GET.WORKBOOK) , оставленная разработчиками для совместимости со старыми версиями Excel. Эта функция выгружает список всех листов текущей книги в заданную переменную, из которой мы потом можем их извлечь и использовать в нашем оглавлении.

Откройте Диспетчер Имен на вкладке Формулы (Formulas – Name Manager) и создайте новый именованный диапазон с именем, допустим, Оглавление. В поле Диапазон (Reference) введите вот такую формулу:

Теперь в переменной Оглавление содержатся наши искомые имена. Чтобы извлечь их оттуда на лист, можно воспользоваться функцией ИНДЕКС (INDEX) , которая «выдергивает» элементы из массива по их номеру:

=ИНДЕКС(Оглавление; СТРОКА())
=INDEX(Оглавление; ROW())

Функция СТРОКА (ROW) выдает номер текущей строки и, в данном случае, нужна только для того, чтобы вручную не создавать отдельный столбец с порядковыми номерами извлекаемых элементов (1,2,3…). Таким образом, в ячейке А1 у нас получится имя первого листа, в А2 – имя второго и т.д.

Неплохо. Однако, как можно заметить, функция выдает не только имя листа, но и имя книги, которое нам не нужно. Чтобы его убрать, воспользуемся функциями ЗАМЕНИТЬ (SUBST) и НАЙТИ (FIND) , которые найдут символ закрывающей квадратной скобки ( ] ) и заменят весь текст до этого символа включительно на пустую строку («»). Откроем еще раз Диспетчер имен с вкладки Формулы (Formulas — Name Manager) , двойным щелчком откроем созданный диапазон Оглавление и изменим его формулу:

Теперь наш список листов будет выглядеть существенно лучше:

Небольшая побочная трудность заключается в том, что наша формула в именованном диапазоне Оглавление будет пересчитываться только при вводе, либо при принудительном пересчете книги нажатием на сочетание клавиш Ctrl+Alt+F9. Чтобы обойти этот неприятный момент, добавим к нашей формуле небольшой «хвост»:

Функция ТДАТА (NOW) выдает текущую дату (с временем), а функция Т превращает эту дату в пустую текстовую строку, которая затем приклеивается к нашему имени листа с помощью оператора склейки (&). Т.е. имя листа, фактически, не меняется, но поскольку функция ТДАТА пересчитывается и выдает новое время и дату при любом изменении листа, то и остальная часть нашей формулы вынуждена будет заново пересчитаться тоже и – как следствие – имена листов будут обновляться постоянно.

Для скрытия ошибок #ССЫЛКА (#REF) , которые будут появляться, если скопировать нашу формулу с функцией ИНДЕКС на большее количество ячеек, чем у нас есть листов, можно использовать функцию ЕСЛИОШИБКА (IFERROR) , которая перехватывает любые ошибки и заменяет их на пустую строку («»):

И, наконец, для добавления к именам листов «живых» гиперссылок для быстрой навигации, можно использовать все ту же функцию ГИПЕРССЫЛКА (HYPERLINK) , которая будет формировать адрес для перехода из имени листа:

Способ 3. Макрос

И, наконец, для создания оглавления можно использовать и несложный макрос. Правда, запускать его придется каждый раз при изменении структуры книги — в отличие от Способа 2, макрос их сам не отслеживает.

Откройте редактор Visual Basic, нажав Alt+F11 или выбрав (в старых версиях Excel) в меню Сервис — Макрос — Редактор Visual Basic (Tools — Macro — Visual Basic Editor) . В открывшемся окне редактора создайте новый пустой модуль (меню Insert — Module) и скопируйте туда текст этого макроса:

Закройте редактор Visual Basic и вернитесь в Excel. Добавьте в книгу чистый лист и поместите его на первое место. Затем нажмите Alt+F8 или откройте меню Сервис — Макрос — Макросы (Tools — Macro — Macros) . Найдите там созданный макрос SheetList и запустите его на выполнение. Макрос создаст на первом листе книги список гиперссылок с названиями листов. Щелчок по любой из них переместит Вас на нужный лист.

Для удобства можно создать также и обратные ссылки на всех листах вашей книги, которые будут вести назад в оглавление, как это было описано в Способе 1.

Как сделать оглавление, гиперссылки и кнопки в Excel

Если книга Excel содержит такое количество листов, что их названия не помещаются внизу листа, сложно переключаться между листами. Конечно, можно использовать кнопки перехода между листами или список листов, который появляется при нажатии правой кнопкой мыши на кнопки перехода (активный лист при этом отмечен галочкой). Но мы можно использовать и другой способ переключения между листами — добавление в книгу оглавления.

Создание списка листов

В самом начале книги добавим еще один лист. Для этого щелкнем правой кнопкой мыши по листу 1 и выберем Вставить.

Переименуем новый лист в Оглавление.

Увеличим ширину столбца А листа Оглавление, чтобы можно было в нем разместить список листов.

В каждую ячейку введем текст: заголовок Оглавление и список листов книги.

Создание гиперссылок для перехода к листам книги

Выделим ячейку А2, в которую введено название первого листа, щелкнем по ней правой кнопкой мыши и в контекстном меню выберем Гиперссылка.

Появится диалоговое окно Вставка гиперссылки. Нам нужно выбрать, с чем связать гиперссылку: Связать с местом в документе. Укажем адрес ячейки, к которой мы перейдем по гиперссылке, в данном случае A1, и выберем место: лист Теоретический материал. Можно ввести текст подсказки, которая будет появляться при наведении указателя мыши на ячейку с гиперссылкой. В качестве подсказки введем текст Лист 1. После выбора параметров нажимаем ОК.

Нажмите для увеличения

Текст в ячейке изменил свой внешний вид. Это означает, что для него создана гиперссылка. При наведении указателя мыши на него появляется подсказка Лист 1.

Точно так же настроим гиперссылки на другие листы книги. Обратим внимание, что гиперссылка, по которой осуществлялся переход, меняет свой цвет.

Как изменить цвет гиперссылки в Excel?

Если синий и фиолетовый цвета гиперссылок нас не устраивают, можно выбрать свои цвета. Для этого на вкладке Разметка страницы выберем Цвета — Создать новые цвета темы.

Выберем цвета гиперссылки и просмотренной гиперссылки и нажмем Сохранить.

Гиперссылки изменили цвет.

Как создать кнопку на листе в Excel?

Рассмотрим создание кнопки в ячейках. Для примера, создадим кнопку Оглавление, при щелчке на которой будет открываться первый лист из нашего примера.

Шаг 1. Перейдем на лист Теоретический материал. Выберем ВставкаФигуры, выберем любую фигуру для создания гиперссылки. Напечатаем текст внутри фигуры — Оглавление. Таким образом мы нарисовали кнопку.

Шаг 2. Выделим фигуру, щелкнем по ней правой кнопкой мыши и выберем Гиперссылка.

Укажем параметры гиперссылки: Связать с местом в документе, перейти на лист Оглавление в ячейку А1. Можно создать подсказку, которая будет появляться при наведении указателя мыши на фигуру. Нажимаем ОК. Гиперссылка для перехода к листу Оглавление создана.

Аналогично можно создать кнопки-гиперссылки на других листах книги.

Кратко об авторе:

Шамарина Татьяна Николаевна — учитель физики, информатики и ИКТ, МКОУ «СОШ», с. Саволенка Юхновского района Калужской области. Автор и преподаватель дистанционных курсов по основам компьютерной грамотности, офисным программам. Автор статей, видеоуроков и разработок.

Спасибо за Вашу оценку. Если хотите, чтобы Ваше имя
стало известно автору, войдите на сайт как пользователь
и нажмите Спасибо еще раз. Ваше имя появится на этой стрнице.

Есть мнение?
Оставьте комментарий

Понравился материал?
Хотите прочитать позже?
Сохраните на своей стене и
поделитесь с друзьями

Вы можете разместить на своём сайте анонс статьи со ссылкой на её полный текст

Ошибка в тексте? Мы очень сожалеем,
что допустили ее. Пожалуйста, выделите ее
и нажмите на клавиатуре CTRL + ENTER.

Кстати, такая возможность есть
на всех страницах нашего сайта

2007-2019 «Педагогическое сообщество Екатерины Пашковой — PEDSOVET.SU».
12+ Свидетельство о регистрации СМИ: Эл №ФС77-41726 от 20.08.2010 г. Выдано Федеральной службой по надзору в сфере связи, информационных технологий и массовых коммуникаций.
Адрес редакции: 603111, г. Нижний Новгород, ул. Раевского 15-45
Адрес учредителя: 603111, г. Нижний Новгород, ул. Раевского 15-45
Учредитель, главный редактор: Пашкова Екатерина Ивановна
Контакты: +7-920-0-777-397, info@pedsovet.su
Домен: http://pedsovet.su/
Копирование материалов сайта строго запрещено, регулярно отслеживается и преследуется по закону.

Отправляя материал на сайт, автор безвозмездно, без требования авторского вознаграждения, передает редакции права на использование материалов в коммерческих или некоммерческих целях, в частности, право на воспроизведение, публичный показ, перевод и переработку произведения, доведение до всеобщего сведения — в соотв. с ГК РФ. (ст. 1270 и др.). См. также Правила публикации конкретного типа материала. Мнение редакции может не совпадать с точкой зрения авторов.

Для подтверждения подлинности выданных сайтом документов сделайте запрос в редакцию.

сервис вебинаров

О работе с сайтом

Мы используем cookie.

Публикуя материалы на сайте (комментарии, статьи, разработки и др.), пользователи берут на себя всю ответственность за содержание материалов и разрешение любых спорных вопросов с третьми лицами.

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

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

Оглавление книги в EXCEL

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

вставьте в книгу пустой лист

перейдите на вкладку Вставка → Гиперссылка

в окне «Вставка гиперссылки» выбираем с чем связать гиперссылку: «Связать с местом в документе». Адрес ячейки — в какую именно ячейку листа будет перемещён курсор. и выбираем место лист Сингапур. В поле «Текст» — указываем название листа. После выбора параметров нажимаем ОК.

Текст в ячейке изменил свой внешний вид. Это означает, что для него создана гиперссылка . Точно так же настроим гиперссылки на другие листы книги. Обратим внимание, что гиперссылка, по которой осуществлялся переход, меняет свой цвет.

Для удобства можно создать также и обратные ссылки на всех листах вашей книги, которые будут вести назад в оглавление. Чтобы не заниматься ручным созданием гиперссылок и копированием их потом на каждый лист, лучше использовать другой метод — функцию ГИПЕРССЫЛКА.

Выделяем все листы в книге, куда хотим добавить обратную ссылку (для массового выделения листов нужно удерживая клавишу Ctrl выделить с помощью мыши нужные листы), и в любую подходящую ячейку вводим функцию следующего вида:

=ГИПЕРССЫЛКА(«#Оглавление!A1″;»Назад в оглавление»)

Эта функция создаст в текущей ячейке на всех выделенных листах гиперссылку с текстом «Назад в оглавление», щелчок по которой будет возвращать пользователя к листу Оглавление.

Как создать кнопку на меню:

Чтобы сделать меню более приятным визуально — добавим кнопки

для начала создадим фигуру будущей кнопки: Вставка → Фигуры → Выбираем любую фигуру:

Напечатаем текст внутри фигуры. Таким образом мы нарисовали кнопку.

Выделим фигуру → переходим на вкладку Вставка → Гиперссылка. Далее назначаем ей параметры как в первом пункте, и нажимаем ОК. Аналогично можно создать другие кнопки-гиперссылки и на различных листах книги. И добавить немного творчества с помощью меню «ФОРМАТ»

Оглавление в Excel.

​Смотрите также​ раз переопределять имена​​ данного вопроса, набрав​​Next​ требуется разбить лист.​ создаст на первом​ старых версиях Excel)​ как следствие –​=ЗАМЕНИТЬ(ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1);1;НАЙТИ(«]»;ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1));»»)​СТРОКА (ROW)​ нем используется недокументированная​ также и обратные​ с помощью стандартного​ сделать содержание в​ втором листе делаем​ Оглавление можно сделать​ отдел». При присвоении​Как сделать содержание в​ вручную или макросом​

​ в Поиске фразу​End With​Обе области —​ листе книги список​ в меню​ имена листов будут​=SUBST(GET.WORKBOOK(1);1;FIND(«]»;GET.WORKBOOK(1));»»)​выдает номер текущей​ XLM-функция​ ссылки на всех​ механизма гиперссылок, нажав ​ Excel».​ гиперссылку на первый​ из названия страниц.​ имени, не забываем​ Excel​Вариант с поиском​ «Оглавление» или «Содержание»​End Sub​ выделите ячейку, расположенную​ гиперссылок с названиями​Сервис — Макрос -​ обновляться постоянно.​Теперь наш список листов​ строки и, в​ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ (GET.WORKBOOK)​ листах вашей книги,​CTRL+K​Создадим оглавление Книги с​ лист «Оглавление». Теперь​ В оглавлении нажимаем​ указать лист, на​,​ во вложении​

​exet​Мурад​ слева и выше​ листов. Щелчок по​ Редактор Visual Basic​Для скрытия ошибок​ будет выглядеть существенно​ данном случае, нужна​, оставленная разработчиками для​ которые будут вести​

​ или через меню Вставка/ Связи/​ помощью функции ГИПЕРССЫЛКА(). ​ копируем эту гиперссылку.​ правой мышкой на​ котором находится это​если нет специальной​exet13​: Добрый день, форумчани.​: А как доработать​ того места, где​ любой из них​(Tools — Macro -​#ССЫЛКА (#REF)​ лучше:​ только для того,​

​ совместимости со старыми​ назад в оглавление.​

Оглавление в Excel.

​ Гиперссылка (после вызова окна Вставка​Пусть в книге имеется​ Переходим на лист​ пустую ячейку. В​ название. Как присвоить​ функции? Можно использовать​: Ох, печаль каждый​Помогите, чем можете​ этот макрос, чтоб​ требуется разбить лист.​ переместит Вас на​ Visual Basic Editor)​, которые будут появляться,​Небольшая побочная трудность заключается​ чтобы вручную не​ версиями Excel. Эта​ Чтобы не заниматься​ гиперссылки выберите Связать с: местом​ несколько листов: к103,​ 3, нажимаем клавишу​ диалоговом окне в​

​ имя ячейке, смотрите​ функцию «Гиперссылка» в​ раз переопределять имена…​Есть 2 листа.​ вначале создавался новый​2. В меню​ нужный лист.​. В открывшемся окне​ если скопировать нашу​ в том, что​ создавать отдельный столбец​ функция выгружает список​ ручным созданием гиперссылок​ в документе).​ к104, к105, …​ «Ctrl», удерживая её​​ разделе «связать с:»​ в статье «Присвоить​ ​ Excel. Например, у​​Спасибо большое за​ На первом -​ лист, который помещается​ Окно выберите команду​Для удобства можно создать​ редактора создайте новый​ формулу с функцией​ наша формула в​ с порядковыми номерами​ всех листов текущей​ и копированием их​Примечание​ (например перечень комнат).​ нажатой, нажимаем левой​ нажимаем на «местом​ имя в Excel​ нас есть огромная​ поиск!​ оглавление, на втором​ в начало книги,​ Закрепить области.​ также и обратные​ пустой модуль (меню​ИНДЕКС​ именованном диапазоне​ извлекаемых элементов (1,2,3…).​ книги в заданную​ потом на каждый​: Ссылки, созданные с​ Составим оглавление, позволяющее​ мышкой ярлыки всех​ в документе». Выходит​ ячейке, диапазону, формуле».​ таблица на несколько​А других вариантов​ прайс-лист.​ под именем «Оглавление»?​Мурад​​ ссылки на всех​Insert — Module​ ​на большее количество​​Оглавление​ Таким образом, в​ переменную, из которой​ лист, лучше использовать​ использованием стандартного механизма гиперссылок​ быстро перемещаться по​ листов книги, в​ перечень листов и​ В диспетчере имен​

excel-office.ru

Оглавление книги на основе гиперссылок в MS EXCEL

​ листов. На первой​ оглавления (например без​

​Прайс-лист каждый день​ И уже в​: Добрый день! Помогите​ листах вашей книги,​) и скопируйте туда​ ячеек, чем у​будет пересчитываться только​ ячейке А1 у​

​ мы потом можем​​ другой метод -​​ перестают работать при​ листам книги (см.​​ которых нужно установить​​ имена диапазонов. Если​

​ видны все имена.​ странице мы сделаем​ имен) по моим​

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

​ функцию​ переименовании листов.​ файл примера).​ ссылку на оглавление.​

​ нужно сделать ссылку​Теперь, если мы вставим​ оглавление этой книги.​

​ требованиям в екселе​ 1с и соответственно​ макрос, указанный сверху.​

​ на первом листе​ назад в оглавление,​Sub SheetList() Dim​ можно использовать функцию​​ при принудительном пересчете​​ первого листа, в​ использовать в нашем​ГИПЕРССЫЛКА (HYPERLINK)​Если в вашей рабочей​

​Создадим в столбце​​ Так мы выделили​ на лист, то​ строку в таблицу,​ Вторая и следующие​

excel2.ru

Оглавление книги Excel

​ не найти?​ видоизменяется.​JayBhagavan​ книги Excel оглавление,​ как это было​ sheet As Worksheet​ЕСЛИОШИБКА (IFERROR)​ книги нажатием на​ А2 – имя​ оглавлении.​. Выделяем все листы​ книге Excel число​

Как в эксель сделать оглавление

​А​ все листы сразу.​

Видео

Способ 1. Создаваемые вручную гиперссылки

​ выбираем этот лист​ то изменится адрес​ страницы – это​Serge_007​Прайс-лист это 20​​:​ состоящее из названий​​ описано в​ Dim cell As​, которая  перехватывает любые​​ сочетание клавиш​​ второго и т.д.​Откройте​ в книге, куда​ листов перевалило за​

Как в эксель сделать оглавление

​перечень названий листов​ Теперь вставляем гиперссылку​ из списка, нажимаем​ ячейки с именем,​ таблицы разных отделов​: Можно что-нибудь придумать​ категорий подкатегорий товара.​Мурад​ листов — гиперссылок​Способе 1​ Range With ActiveWorkbook​ ошибки и заменяет​Ctrl+Alt+F9​​Неплохо. Однако, как можно​​Диспетчер Имен​ хотим добавить обратную​ второй десяток, то​ книги. В ячейке​ в нужную ячейку​ «ОК». Получилось такое​​ т.е. имя привязано​​ (отдел продаж, отдел​​Формуляр​​ Названия категорий не​, перед добавлением листа​ в соответствующие листы.​

​.​

​ For Each sheet​ их на пустую​. Чтобы обойти этот​ заметить, функция выдает​на вкладке​ ссылку (для массового​ навигация по листам​В9​​ листа. Всё, ссылка​​ содержание в Excel.​

Способ 2. Динамическое оглавление с помощью формул

​ к названию отдела.​ закупок, т.д.). Примерно,​: У меня целых​ меняются, соответственно и​ с требуемым именем​ Очень удобно при​В общем, когда прокручиваешь​ In ActiveWorkbook.Worksheets Set​ строку («»):​​ неприятный момент, добавим​​ не только имя​Формулы (Formulas – Name​ выделения листов можно​ начинает становится проблемой.​запишем формулу:​ «Оглавление» появилась на​Ссылка на лист получается​ На первой странице​ так (в примере​ 2 варианта получилось:​ оглавление не изменяется.​

​ проверьте нет ли​​ навигации.​​ таблицу Excel вниз,​​ cell = Worksheets(1).Cells(sheet.Index,​И, наконец, для добавления​​ к нашей формуле​ листа, но и​ Manager)​​ использовать клавиши​​ Одним из красивых​​=ГИПЕРССЫЛКА(«[«&$B$6&»]»&A9&»!A1″;»Нажмите ссылку, чтобы перейти​​ всех выделенных листах.​ такой, как в​

Как в эксель сделать оглавление

​ составляем оглавление из​
​ таблицы маленькие).​

​1ый — не​​Сделал оглавление с​​ его уже в​Названия листов расположены​ то оглавление скрывается.​ 1) .Worksheets(1).Hyperlinks.Add anchor:=cell,​ к именам листов​​ небольшой «хвост»:​​ имя книги, которое​и создайте новый​Shift​

​ способов ее решения​
​ на Лист «&A9&»,​

​ Осталось разгруппировать листы.​​ ячейке А2. Но​​ названия отделов и​Принцип составление содержания в​ работает, а 2ой​ привязкой гиперссылки по​ книге.​ сверху вниз в​ Но можно как​ Address:=»», SubAddress:=»‘» &​ «живых» гиперссылок для​=ЗАМЕНИТЬ(ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1);1;НАЙТИ(«]»;ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1));»»)​ нам не нужно.​ именованный диапазон с​и/или​ является создание листа-оглавления​

Как в эксель сделать оглавление

​ в ячейку А1″)​ Для этого, нажимаем​ в строке формул​ подразделений.​ том, чтобы сделать​ не годится (для​ присвоенному имени. Но​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sheets.Add before:=Sheets(1)​​ порядке расположения в​​ то сделать, чтобы​​ sheet.Name & «‘»​​ быстрой навигации, можно​&Т(ТДАТА())=SUBST(GET.WORKBOOK(1);1;FIND(«]»;GET.WORKBOOK(1));»»)&T(NOW())​ Чтобы его убрать,​ именем, допустим,​Ctrl​ с гиперссылками, ведущими​в ячейке​ правой мышкой на​​ можно подкорректировать название,​​Теперь остается сделать гиперссылки​​ гиперссылки. Но, есть​ большого количества ссылок)​​ вот беда, ячейка​Sheets(1).Name = «Oglavlenie»​​ книге.​​ оглавление оставалось висеть​ & «!A1» cell.Formula​

​ использовать все ту​
​Функция ТДАТА (NOW) выдает​

​ воспользуемся функциями​Оглавление​) и в любую​

Как в эксель сделать оглавление

​ на соответствующие листы​В6​ любой выделенный ярлык​ например, как в​​ на эти слова.​​ одна хитрость. Гиперссылки​1ый вариант (в​ автоматически меняется, только​Wasilich​Pelena​​ вверху, окна, а​​ = sheet.Name Next​ же функцию​ текущую дату (с​ЗАМЕНИТЬ (SUBST)​

​. В поле​​ подходящую ячейку вводим​

​ книги:​содержится имя текущей​ и выбираем из​ ячейке А3 –​ Как это сделать,​ будем делать не​ ст-це​ если в ручную​: Вам​: Здравствуйте​ остальная часть таблицы​ End With End​ГИПЕРССЫЛКА (HYPERLINK)​ временем), а функция​и​Диапазон (Reference)​ функцию следующего вида:​Есть несколько способов реализовать​ книги (подробнее читайте​ контекстного меню функцию​ убрали восклицательный знак​ смотрите в статье​ на ячейки, а​С​

​ редактировать прайс-лист, а​​Pelena​​Похожая тема​ прокручивалась. Просто когда​ Sub​​, которая будет формировать​​ Т превращает эту​НАЙТИ (FIND)​введите вот такую​=ГИПЕРССЫЛКА(«#Оглавление!A1″;»Назад в оглавление»)​​ подобное.​​ в статье Извлечение​ «Разгруппировать листы». Как​ и адрес ячейки.​ «Как сделать гиперссылку​

Как в эксель сделать оглавление

​ на имя ячейки,​), через​ если просто вставлять​сделала ссылку на​Мурад​ таблица большая, не​​Закройте редактор Visual Basic​​ адрес для перехода​ дату в пустую​, которые найдут символ​

Как в эксель сделать оглавление

Способ 3. Макрос

​ формулу:​Эта функция создаст в​Вставьте в книгу пустой​ имени файла). В​ сочетанием клавиш переходить​ Если листы подписаны​ в Excel». Встаем​ название отдела. Если​​HYPERLINK()​​ новый прайс, то​ похожую тему, Вы​

​:​ удобно все время​​ и вернитесь в​​ из имени листа:​ текстовую строку, которая​ закрывающей квадратной скобки​​=ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1)​ текущей ячейке на​ ​ лист и добавьте​ случае, если книга​​ по листам книги​ по-другому, то в​ на ячейку с​​ сделаем гиперссылку на​​, выдаёт ошибку «Cannot​ гиперссылка по имени​

​ ее смотрели? Там​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub SheetList()​ прокручивать её вверх,​ Excel. Добавьте в​И, наконец, для создания​ затем приклеивается к​ ( ] )​=GET.WORKBOOK(1)​ всех выделенных листах​ на него гиперссылки​ будет переименована, оглавление​ Excel, читайте в​ списке будут эти​ названием, которое хотим​

​ ячейку, то, если​ open specified file»,​ ведет уже не​Alex_ST​Dim sheet As​ чтобы посмотреть как​ книгу чистый лист​​ оглавления можно использовать​​ нашему имени листа​​ и заменят весь​Теперь в переменной​ гиперссылку с текстом​​ на нужные вам​ продолжит работать.​​ статье «Сочетание клавиш​​ названия листов. Смотрите​ сделать гиперссылкой. Из​ вставим строку выше​ хотя мне казалось,​ туда куда надо.​выложил код на​ Worksheet​ называется столбец. Как​ и поместите его​

​ и несложный макрос.​ с помощью оператора​ текст до этого​Оглавление​ «Назад в оглавление»,​ листы, используя команду​Если книгу не планируется​ в Excel». Ещё​​ ячейку А4. Можно​​ контекстного меню выбираем​

planetaexcel.ru

Как сделать так, чтобы оглавление таблицы в Excel не скрывалось при прокручивании документа ?

​ этой ячейки, то​ я этим раньше​Есть ли возможность​ 100% такой как​Dim cell As​ это сделать?​ на первое место.​ Правда, запускать его​ склейки (&). Т.е.​ символа включительно на​содержатся наши искомые​ щелчок по которой​Вставка — Гиперссылка (Insert​ переименовывать, то имя​ об одном способе,​

​ сделать на каждом​​ функцию «Гиперссылка». В​ гиперссылка работать не​ как-то пользовался -​
​ в екселе сделать​ вам надо. Даже​ Range​Nataliya​
​ Затем нажмите​ придется каждый раз​ имя листа, фактически,​ пустую строку («»).​
​ имена. Чтобы извлечь​ будет возвращать пользователя​ — Hyperlink)​ книги можно указать​как перейти на другой​
​ листе книги​ диалоговом окне выбираем​ будет, сдвинется. Итак,​

Оглавление / Содержание книги (Макросы/Sub)

​ так и не​​ гиперссылку из оглавления,​ имя листа такое​With ActiveWorkbook​: 1. Чтобы закрепить​Alt+F8​ при изменении структуры​ не меняется, но​ Откроем еще раз​ их оттуда на​
​ к листу​. В открывшемся окне​ в текстовой форме:​ лист в​

​обратную гиперссылку к оглавлению​​ из списка нужное​
​ на каждой странице​

​ вспомнил как​​ которая по точному​​ же.​
​For Each sheet​ область, выполните одно​
​или откройте меню​ книги - в​
​ поскольку функция ТДАТА​
​Диспетчер имен​ лист, можно воспользоваться​
​Оглавление​ нужно выбрать слева​
​=ГИПЕРССЫЛКА("[_Оглавление_с_гиперссылками.xlsx]к103!A1";"Нажмите ссылку, чтобы перейти​Excel​ книги​ имя. Нажимаем «ОК».​
​ присваиваем имена ячейкам​
​Может коллеги чего​
​ совпадению названия категории​
​Мурад​

​ In ActiveWorkbook.Worksheets​​ из следующих действий.​Сервис — Макрос -​ отличие от​ пересчитывается и выдает​с вкладки​ функцией​.​ опцию​ на Лист «&A9&»,​

​, смотрите в статье​​Excel​​ Всё, ссылка готова.​​ с названием отделов​ подскажут…​ выкидывает куда надо?​: То, что я​Set cell =​​Верхнюю горизонтальную область​
​ Макросы (Tools -​

​Способа 2​​ новое время и​​Формулы (Formulas — Name​​ИНДЕКС (INDEX)​Это хоть и слегка​Место в документе​​ в ячейку А1″)​​ «Листы в Excel»​. Сначала присвоим имя​Так делаем все гиперссылки.​ — «Отдел продаж»,​2ой вариант (в​:)

​Спасибо​​ нашел по той​ Worksheets(1).Cells(sheet.Index, 1)​ — выделите строку,​ Macro — Macros)​, макрос их сам​ дату при любом​ Manager)​, которая «выдергивает» элементы​ экзотический, но весьма​и задать внешнее​:)

excelworld.ru

оглавление по тексту ячейки

​При нажатии гиперссылки MS​​ тут. Как сделать​
​ оглавлению через функцию​smile
​ Получилось такое оглавление.​ «Отдел закупок». Если​ ст-це​exet13​
​ ссылке, я выложил​.Worksheets(1).Hyperlinks.Add anchor:=cell, Address:=»»,​ под которой требуется​. Найдите там созданный​
​ не отслеживает.​ изменении листа, то​, двойным щелчком откроем​ из массива по​ красивый и удобный​
​ текстовое отображение и​ EXCEL перейдет в​ содержание в большой​ «Присвоить имя». Например​Всё, оглавление готово. Теперь​ таблицы длинные, то,​A​: Извините, забыл вставить​ сразу же в​ SubAddress:=»‘» & sheet.Name​ разбить лист.​ макрос​
​Откройте редактор Visual Basic,​ и остальная часть​ созданный диапазон​ их номеру:​ способ создания автоматического​ адрес ячейки, куда​
​ окно соответствующего листа.​

​ таблице на отделы,​​ — «Оглавление». Оглавление​ можно быстро перейти​

​ можно присвоить имена​​) работает, но требует​ файл​ этой теме, чтобы​
​ & «‘» &​Левую вертикальную область​

​SheetList​​ нажав​ нашей формулы вынуждена​
​Оглавление​=ИНДЕКС(Оглавление; СТРОКА())​
​ листа оглавления вашей​ приведет ссылка:​Для обратного перехода к​ подразделы таблицы, смотрите​ у нас на​

​ на нужную страницу​​ и подразделениям –​

​ ручной настройки именованных​​Serge_007​ новички смогли найти​smile
​ «!A1″​ — выделите столбец,​и запустите его​Alt+F11​
​ будет заново пересчитаться​и изменим его​​=INDEX(Оглавление; ROW())​​ книги. Экзотический –​​Для удобства можно создать​​ оглавлению можно создать ссылку​ в статье «Как​ первом листе. На​ в нужный подраздел.​ «1 отдел», «2​ диапазонов.​: Вам придётся каждый​sad
​ в будущем решение​cell.Formula = sheet.Name​
​ слева от которого​ на выполнение. Макрос​​или выбрав (в​​ тоже и –​ формулу:​Функция​

excelworld.ru

​ потому что в​

To create an Index / Table of Contents worksheet to a workbook:

1) Add a new worksheet and name it «Index»

2) Open the VBE and select this new worksheet (Index). In the properties window change the sheets code name (first line) to «Index»

3) In the Project window, right click on the worksheet and select view code. Then copy the code below to the code window.

 
Private Sub Worksheet_Activate()
 
' macro written by Doug Wilson, June 26, 2020
'
' this code calls the "Create_Index" macro every time the worksheet "Index" is selected/activated
' this ensures the Workbook Index is always current when viewed
 
Call Create_Index
 
End Sub
'
 
Sub Create_Index()
 
' macro written by Doug Wilson, June 26, 2020
 
' this macro is called when the worksheet "Index" is selected
' the following code creates a list of all the sheets in the workbook with hyperlinks to each
 
Dim x As Integer
Dim Nm1, Nm2 As String
Dim place As Integer
Dim ws As Worksheet
Dim SA, TTD As Variant
 
Application.ScreenUpdating = False     ' allows macro to run faster - helpful with large workbooks
 
Const bSkipHidden As Boolean = False    'Change this to True to NOT list hidden sheets
 
place = 4     ' the row number where the sheet info is entered to on the "Index worksheet
x = 1           ' used as a reference to the sheet's order number from left to right in the workbook
 
Sheets("Index").Cells.Clear     ' Clear all data in cells
 
' edit: alignment, height, font & size to suit your needs
Columns("B:D").Select
    With Selection
        .EntireColumn.Hidden = False     ' un-hides column 'C' - sheet code name data
        .HorizontalAlignment = xlCenter
        .RowHeight = 15
        .Font.Name = "Arial"
        .Font.Size = 12
         End With
        
Sheets("Index").Range("A1").Select
    With Selection
        .Value = ActiveWorkbook.Name & "   ~   Table of Contents"     ' inserts a title at top of sheet; edit to suit
        .RowHeight = 20
        .Font.Name = "Arial"
        .Font.Size = 16
        End With
 
Sheets("Index").Range("B3:D3").Borders(xlEdgeBottom).Weight = xlMedium
 
Sheets("Index").Range("B3") = "Sheet #"
Sheets("Index").Range("C3") = "Sheet Code Name"
Sheets("Index").Range("D3") = "Sheet Tab Name"
Sheets("Index").Range("B3:D3").Select      ' header row
' edit: height, font & size to suit your needs
    With Selection
    Selection.RowHeight = 20
        .Font.Name = "Arial"
        .Font.Size = 14
        End With
        Range("A1").Select
        
For Each ws In Worksheets     ' start the loop through all worksheets
 
Nm1 = ws.CodeName     ' the worksheet code name (first line in Properties pane)
Nm2 = ws.Name            ' the worksheet Tab name (as seen across the bottom of the workbook)
 
SA = "'" & Worksheets(Nm2).Name & "'!" & "A1"     ' the 'SubAddress' used in the hyperlink code
TTD = Nm2     ' the 'TextToDisplay' used in the hyperlink code
 
Sheets("Index").Cells(place, 2) = x         ' enters the sheet's order number on the Index sheet
Sheets("Index").Cells(place, 3) = Nm1    ' enters the sheet's code name on the Index sheet
Sheets("Index").Cells(place, 4) = Nm2    ' enters the sheet's Tab name on the Index sheet
Sheets("Index").Range(Cells(place, 2), Cells(place, 4)).Select
    Selection.RowHeight = 15
    Range("A1").Select
If Nm2 = "Index" Then GoTo Line100    ' if the sheet name is Index, skip adding a hyperlink
Sheets("Index").Cells(place, 4).Select      ' selects the cell where the hyperlink will be added
ActiveCell.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:=SA, TextToDisplay:=TTD
With Selection.Font      ' set the font type and size of hyperlink to match the other data; edit to suit
        .Name = "Arial"
        .Size = 12
        End With
Line100:
place = place + 1     ' increments the row number where data is entered
x = x + 1     ' increments the sheet order number
If x > Worksheets.Count Then GoTo Line999     ' last sheet has been added to the "Index" sheet
 
Next     ' loops to next sheet
 
Line999:
 
Sheets("Index").Columns("B:D").Select
    Columns("B:D").EntireColumn.AutoFit     ' adjusts column width to match length of longest entry
    ' comment-out the following code if it is not wanted / needed
    Columns("C:C").Select
    Selection.EntireColumn.Hidden = True     ' hides column with the sheet code names
    
Application.ScreenUpdating = True     ' turns real-time updating back on
 
Sheets("Index").Activate
Sheets("Index").Range("D2").Select
        ' the following scrolls the sheet up and to the left
        ActiveWindow.ScrollRow = 1
        ActiveWindow.ScrollColumn = 1
        
End Sub
'
 
Sub Go_To_Index()
 
' macro written by Doug Wilson, June 26, 2020
 
' this macro makes the sheet named "Index" the selected worksheet
 
Sheets("Index").Activate
Sheets("Index").Range("D2").Select
 
End Sub
'

4) On the Index worksheet insert a ‘button or ‘shape’ of your choosing. Add text «Go To Index» (or whatever you prefer), format the font type and colour, the shape outline  and fill colour, and then assign the macro Go_To_Index() above to the button/shape. Copy this all worksheets.

5) If your workbook is large, an easy way to copy your ‘button’ is to add a code module in the VBE and copy the following to it:

 
Sub CopyButton_1()
'
' macro written by Doug Wilson July 1, 2020
' the 'button' must first be selected before running macro
' assign your desired macro or hyperlink to the 'button' before running this macro
 
' This macro will copy a 'button' to every sheet in a workbook
 
Dim x As Integer
Dim ws As Worksheet
 
Application.ScreenUpdating = False     ' allows macro to run faster - helpful with large workbooks
 
x = 2           ' used as a reference to the sheet's ORDER number from left to right in the workbook
                   '  (edit starting point as needed)
 
' on the sheet where the master button is, select the button to copy (edit as needed)
    Selection.Copy   ' button to copy
    
For Each ws In Worksheets     ' start the loop through all worksheets
    
    Sheets(x).Select   ' sheet where the button is being copied
    Range("A1").Select   ' cell where the button is being copied to (edit as needed)
    ActiveSheet.Paste   ' copying of the button
    Range("B3").Select   ' cell on sheet to be selected after copying the button (edit as needed)
    
    x = x + 1     ' increments the sheet ORDER number
If x > Worksheets.Count Then GoTo Line999     ' has been added to the last sheet
 
Next     ' loops to next sheet
 
Line999:
Application.ScreenUpdating = True     ' turns real-time updating back on
Application.CutCopyMode = False   ' exits cut/copy/paste mode (gets rid of marching ants)
 
' the following activates the "Index" sheet (edit "Index" to the sheet name as needed)
Sheets("Index").Activate
Sheets("Index").Range("D2").Select  ' cell on sheet to be selected (edit as needed)
        ' the following scrolls the sheet up and to the left
        ActiveWindow.ScrollRow = 1
        ActiveWindow.ScrollColumn = 1
    
End Sub
 

Then go back to your Index sheet, select your ‘button’ and then run the macro CopyButton_1 while your ‘button’ is selected and it will be copied to all sheets.

Enjoy


Excel VBA Course

Excel VBA Course — From Beginner to Expert

200+ Video Lessons
50+ Hours of Instruction
200+ Excel Guides

Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)

View Course

How to Install the Macro

  1. Select and copy the text from within the grey box above.
  2. Open the Microsoft Excel file in which you would like the Macro to function.
  3. Press «Alt + F11» — This will open the Visual Basic Editor — Works for all Excel Versions.
     Or For other ways to get there, Click Here.
  4. On the new window that opens up, go to the left side where the vertical pane is located. Locate your Excel file; it will be called VBAProject (YOUR FILE’S NAME HERE) and click this.
  5. If the Macro goes in a Module, Click Here, otherwise continue to Step 8.
  6. If the Macro goes in the Workbook or ThisWorkbook, Click Here, otherwise continue to Step 8.
  7. If the Macro goes in the Worksheet Code, Click Here, otherwise continue to Step 8.
  8. Close the Microsoft Visual Basic Editor window and save the Excel file. When you close the Visual Basic Editor window, the regular Excel window will not close.
  9. You are now ready to run the macro.

Понравилась статья? Поделить с друзьями:
  • Содержание курсовой работы образец word
  • Содержание для реферата образец word скачать
  • Содержание дипломной работы в word
  • Содержание в формате word
  • Содержание в реферате образец в word