Получить рабочую книгу функция в excel

Синтаксис:

ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(ном_типа;имя_текст)

Ном_типа — число, определяющее запрашиваемый тип информации о рабочей книге.
Имя_текст — имя открытой рабочей книги. Если аргумент опущен, предполагается имя активной рабочей книги.

Ном_типа    Возвращает

1    Имена всех листов рабочей книги в виде горизонтального массива текстовых значений.
2    Всегда возвращает ошибочное значение #Н/Д.
3    Имена выделенных в настоящий момент листов рабочей книги в виде горизонтального массива текстовых значений.
4    Количество листов рабочей книги.
5    ИСТИНА, если рабочая книга имеет маршрутный лист, иначе — ЛОЖЬ.
6    Имена всех получателей книги, которые не получили книгу, в виде горизонтального массива текстовых значений.
7    Строка описания для текущего маршрутного листа в виде текста.
8    Текст сообщения для маршрутного листа.
9    Если книга будет отправлена получателям поочередно, возвращается 1.
Если документ будет послан всем получателям одновременно, возвращается
2.
10    ИСТИНА, если в диалоговом окне Маршрутный канал выделен флажок «Возврат по окончании», иначе — ЛОЖЬ.
11    ИСТИНА, если текущему получателю переадресована текущая книга, иначе — ЛОЖЬ.
12    ИСТИНА, если в диалоговом окне Маршрутный канал выделен флажок «Отслеживать состояние», иначе возвращается ЛОЖЬ.
13    Статус маршрутного канала рабочей книги:
     
0 = Не пересылает.
     
1 = Производит пересылку или рабочая книга послана пользователю.
     
2 = Пересылка завершена.
14    ИСТИНА, если структура рабочей книги защищена, иначе — ЛОЖЬ.
15    ИСТИНА, если окна рабочей книги защищены, иначе — ЛОЖЬ.
16    Имя книги в виде текста. Имя книги не включает устройство, каталог, папку или номер окна..
17    ИСТИНА, если книга открыта только для чтения, иначе — ЛОЖЬ. Соответствует функции ПОЛУЧИТЬ.ДОКУМЕНТ(34).
18    ИСТИНА, если лист зарезервирован для записи, иначе — ЛОЖЬ. Соответствует функции ПОЛУЧИТЬ.ДОКУМЕНТ(35).
19    Имя пользователя, имеющего текущее разрешение на запись документа. Соответствует функции ПОЛУЧИТЬ.ДОКУМЕНТ(35).
20    Число, соответствующее типу файла документа, как показано в
диалоговом окне Сохранить как. Соответствует функции
ПОЛУЧИТЬ.ДОКУМЕНТ(37).
21    ИСТИНА, если в диалоговом окне Параметры сохранения выделен флажок
«Всегда создавать резервную копию», иначе — ЛОЖЬ. Соответствует
функции ПОЛУЧИТЬ.ДОКУМЕНТ(40).
22    ИСТИНА, если в диалоговом окне Параметры на вкладке «Вычисления»
выделен флажок «сохранять значения внешних связей». Соответствует
функции ПОЛУЧИТЬ.ДОКУМЕНТ(43).
23    ИСТИНА, если рабочая книга содержит почтальона PowerTalk, иначе —
ЛОЖЬ. Возвращает ошибочное значение, если не установлен почтальон ОСЕ.
24    ИСТИНА, если изменения в рабочей книге были произведены после ее
сохранения, ЛОЖЬ, если книга не изменялась (или была закрыта без
приглашиния сохранения).
25    Получатели То-линии почтальона PowerTalk mailer в виде горизонтального текстового массива.
26    Получатели Сс-линии почтальона PowerTalk mailer в виде горизонтального текстового массива.
27    Получатели Всс-линии почтальона PowerTalk mailer в виде горизонтального текстового массива.
28    Тема почтальона PowerTalk в виде текста.
29    Вложения почтальона PowerTalk в виде горизонтального текстового массива.
30    ИСТИНА, если почтальон PowerTalk направлен другим пользователем
(противоположное — добавлен, но не послан). ЛОЖЬ, если почтальон не
направлен другим пользователем.
31    Дата и время отправления почтальона Power Talk в числовом формате.
Возвращает ошибочное значение #Н/Д, если почтальон не отправлен.
32    Имя отправителя почтальона PowerTalk в виде текста. Возвращает ошибочное значение #Н/Д, если почтальон еще не послан.
33    Заголовок книги, который отображается в виде текста на вкладке Документ диалогового окна Свойства.
34    Тема документа, которая отображается в виде текста на вкладке Документ диалогового окна Свойства.
35    Автор документа, который отображается в виде текста на вкладке Документ диалогового окна Свойства.
36    Ключевые слова, документа, которые отображается в виде текста на вкладке Документ диалогового окна Свойства.
37    Комментарии к документу, которые отображается в виде текста на вкладке Документ диалогового окна Свойства.
38    Имя активного листа.

Пример:

Следующая макроформула возвращает имя активного листа рабочей книги с именем Excample.XLS::

Code

ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(2; «Excample.XLS»)

Если в вашей рабочей книге 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

C помощью надстройки VBA-Excel можно выводить список выбранных листов книги в указанную ячейку.

Вывести список листов excel

Вывести список листов в ячейку можно следующим способом:

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

Как посмотреть список листов в книге excel

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

Примечание: Представленные в этой статье изображения созданы в Excel 2016. Если вы используете другую версию, интерфейс может немного отличаться, но функции будут такими же (если не указано иное).

Ярлычки скрыты из-за изменения размеров окон.

Если вы восстановили несколько окон, убедитесь, что они не перекрываются. Возможно, верхняя часть одного окна Excel закрывает ярлычки листов другого окна.

Строка состояния находится под строкой формул.

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

Попробуйте увеличить размер окна, чтобы открыть вкладки. Просто дважды щелкните заголовок окна.

Если ярлычки по-прежнему не отображаются, щелкните Вид > Упорядочить все > Рядом > ОК.

Параметр Показывать ярлычки листов отключен.

Сначала проверьте, действительно ли параметр Показывать ярлычки листов включен. Вот как это сделать:

Для других версий Excel: выберите Файл > Параметры > Дополнительно и убедитесь, что в разделе Показать параметры для следующей книги установлен флажок Показывать ярлычки листов.

Ярлычки перекрываются горизонтальной полосой прокрутки.

Наведите указатель мыши на край полосы прокрутки и удерживайте его, пока не появится двусторонняя стрелка (см. рисунок). Щелкните и перетащите стрелку вправо, пока не появится название ярлычка целиком и остальные ярлычки.

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

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

Отображение скрытого листа

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

Как создать список всех листов, содержащихся в книге Excel при помощи макрофункции

Странно, но в Excel невозможно напрямую сгенерировать список имен листов из книги. В этой статье будет рассказано, как создать список всех листов, содержащихся в книге. Как и в предыдущей статье, здесь мы будем использовать макрофункцию из Excel 4 XLM в именованной формуле.

Начнем с книги, в которой много рабочих листов или листов с диаграммами. Выполните следующие действия, чтобы создать список названий листов.

  1. Вставьте новый лист, на котором будет находиться список.
  2. Выполните команду Формулы ► Присвоить имя, чтобы открыть диалоговое окно Создание имени.
  3. Впишите в поле Имя название Список.
  4. Введите следующую формулу в поле Диапазон (рис. 9.1): =ЗАМЕНИТЬ(ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1);1;НАЙТИ(«]»;ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1));»») .
  5. Осталось нажать ОК, чтобы закрыть диалоговое окно Создание имени.

http://www.kids.ua/

Рис. 9.1. Работа с окном Создание имени для создания именованной формулы

Обратите внимание: в формуле используется функция ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ, которая не относится к числу стандартных функций рабочего листа. Это макрофункция, написанная в сравнительно старом XLM-стиле и предназначенная для применения на специальном листе макросов. При использовании аргумента 1 она возвращает массив имен листов, причем перед именем каждого листа указано название книги, откуда он взят. Функции ЗАМЕНИТЬ и НАЙТИ удаляют имя книги, сопутствующее названию листа. Чтобы сгенерировать имена листов, введите в ячейку А1 следующую формулу, а затем скопируйте ее ниже по столбцу: =ИНДЕКС(Список;СТРОКА()) .

На рис. 9.2 приведена данная формула для диапазона А1:А10. В книге семь листов, поэтому формула возвращает ошибку #ССЫЛКА! при попытке отобразить имя несуществующего листа. Чтобы избежать этого, измените формулу следующим образом: =ЕСЛИОШИБКА(ИНДЕКС(Список;СТРОКА());»») .

Рис. 9.2. Использование формулы для отображения списка имен листов

Рис. 9.2. Использование формулы для отображения списка имен листов

Список названий листов можно откорректировать, если вы будете добавлять, удалять или переименовывать листы, но это не происходит автоматически. Чтобы принудительно обновить формулы, нажмите Ctrl+Alt+F9. Если вы хотите, чтобы имена листов автоматически обновлялись при пересчете книги, измените именованную формулу следующим образом, чтобы сделать ее меняющейся: =ЗАМЕНИТЬ(ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1);1;НАЙТИ(«]»;ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1));»»)&Т(ТДАТА()) .

Рис. 9.3. Создание списка гиперссылок

Рис. 9.3. Создание списка гиперссылок

Зачем может понадобиться список названий листов? На рис. 9.3 показано оглавление, созданное с помощью ссылки ГИПЕРССЫЛКА. В ячейке В1 записана следующая формула: =ГИПЕРССЫЛКА(«#»&A1&»!A1″;»Перейти по ссылке») . Щелкнув на гиперссылке, вы активизируете лист и выделяете ячейку А1. К сожалению, Excel не поддерживает гиперссылок, ведущих на лист с диаграммами, поэтому при попытке сослаться на такой лист программа выдаст ошибку.

Если вы пользуетесь такими приемами, то книгу нужно сохранить как файл с поддержкой макросов (в формате *.xlsm или *.xls).

Странно, но в Excel невозможно напрямую сгенерировать список имен листов из книги. В этой статье будет рассказано, как создать список всех листов, содержащихся в книге. Как и в предыдущей статье, здесь мы будем использовать макрофункцию из Excel 4 XLM в именованной формуле.

Начнем с книги, в которой много рабочих листов или листов с диаграммами. Выполните следующие действия, чтобы создать список названий листов.

  1. Вставьте новый лист, на котором будет находиться список.
  2. Выполните команду Формулы ► Присвоить имя, чтобы открыть диалоговое окно Создание имени.
  3. Впишите в поле Имя название Список.
  4. Введите следующую формулу в поле Диапазон (рис. 9.1): =ЗАМЕНИТЬ(ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1);1;НАЙТИ("]";ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1));"").
  5. Осталось нажать ОК, чтобы закрыть диалоговое окно Создание имени.

http://www.kids.ua/

Рис. 9.1. Работа с окном Создание имени для создания именованной формулы

Обратите внимание: в формуле используется функция ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ, которая не относится к числу стандартных функций рабочего листа. Это макрофункция, написанная в сравнительно старом XLM-стиле и предназначенная для применения на специальном листе макросов. При использовании аргумента 1 она возвращает массив имен листов, причем перед именем каждого листа указано название книги, откуда он взят. Функции ЗАМЕНИТЬ и НАЙТИ удаляют имя книги, сопутствующее названию листа. Чтобы сгенерировать имена листов, введите в ячейку А1 следующую формулу, а затем скопируйте ее ниже по столбцу: =ИНДЕКС(Список;СТРОКА()).

На рис. 9.2 приведена данная формула для диапазона А1:А10. В книге семь листов, поэтому формула возвращает ошибку #ССЫЛКА! при попытке отобразить имя несуществующего листа. Чтобы избежать этого, измените формулу следующим образом: =ЕСЛИОШИБКА(ИНДЕКС(Список;СТРОКА());"").

Рис. 9.2. Использование формулы для отображения списка имен листов

Рис. 9.2. Использование формулы для отображения списка имен листов

Список названий листов можно откорректировать, если вы будете добавлять, удалять или переименовывать листы, но это не происходит автоматически. Чтобы принудительно обновить формулы, нажмите Ctrl+Alt+F9. Если вы хотите, чтобы имена листов автоматически обновлялись при пересчете книги, измените именованную формулу следующим образом, чтобы сделать ее меняющейся: =ЗАМЕНИТЬ(ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1);1;НАЙТИ("]";ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1));"")&Т(ТДАТА()).

Рис. 9.3. Создание списка гиперссылок

Рис. 9.3. Создание списка гиперссылок

Зачем может понадобиться список названий листов? На рис. 9.3 показано оглавление, созданное с помощью ссылки ГИПЕРССЫЛКА. В ячейке В1 записана следующая формула: =ГИПЕРССЫЛКА("#"&A1&"!A1";"Перейти по ссылке"). Щелкнув на гиперссылке, вы активизируете лист и выделяете ячейку А1. К сожалению, Excel не поддерживает гиперссылок, ведущих на лист с диаграммами, поэтому при попытке сослаться на такой лист программа выдаст ошибку.

Если вы пользуетесь такими приемами, то книгу нужно сохранить как файл с поддержкой макросов (в формате *.xlsm или *.xls).

Один посетитель сайта (Валерий) недавно спросил: «Есть ли инструмент поиска листа в книге по его названию». Возможное решение – просто выбрать лист из списка (рис. 1). Для этого кликните правой кнопкой мыши в левом нижнем углу экрана на одной из кнопок прокрутки.

Рис. 1. Выбор листа из списка

Рис. 1. Выбор листа из списка

Скачать заметку в формате Word или pdf, примеры в формате Excel2013 (с макросами)

Однако, если у вас десятки (а то и сотни) листов, а также, если вы хотите найти лист с определенным названием, такой метод вряд ли будет хорош. Создайте отдельную страницу в книге, на которой разместите указатель, связав гиперссылкой каждую строку с соответствующим листом. Вы сможете создать фильтр или находить листы контекстным поиском. Указатель можно создать двумя способами. [1]

Возможно, вам покажется привлекательной идея создать указатель вручную. Создайте новый лист, назовите его Указатель или подобным именем, введите имена всех остальных листов и свяжите записи гиперссылками с соответствующими листами, пройдя по меню ВставкаГиперссылка (рис. 2) или нажав сочетание клавиш Ctrl+K (К английское). Этот способ подойдет для книг с небольшим числом листов, которые будут меняться нечасто. Но даже в этом случае может быть затруднительно поддерживать актуальность указателя.

Рис. 2. Можно создать указатель вручную с помощью гиперссылок

Рис. 2. Можно создать указатель вручную с помощью гиперссылок

Более универсальный, но и более сложный путь – добавить код VBA. В этом случае указатель будет создаваться заново каждый раз при переходе на лист с указателем (к сожалению, это может замедлять работу, если листов много).

1. Сохраните вашу книгу как файл с поддержкой макросов (рис. 3)

Рис. 3. Книга Excel с поддержкой макросов

Рис. 3. Книга Excel с поддержкой макросов

2. Вставьте в вашу книгу новый лист и назовите его удобным именем — например, Указатель.

3. Правой кнопкой мыши щелкните ярлычок листа и в контекстном меню выберите команду Исходный текст (рис. 4).

Рис. 4. Исходный текст

Рис. 4. Исходный текст

4. В открывшемся окне введите код VВА (рис. 5). Во избежания ошибок, рекомендую код скопировать из модуля в файле Excel.

Private Sub Worksheet_Activate()

Dim wSheet As Worksheet

Dim l As Long

l = 1

With Me

.Columns(1).ClearContents

.Cells(l, 1) = "INDEX"

.Cells(l, 1).Name = "INDEX"

End With

For Each wSheet In Worksheets

If wSheet.Name <> Me.Name Then

l = l + 1

With wSheet

.Range("A1").Name = "Start" & wSheet.Index

.Hyperlinks.Add Anchor:=.Range("A1"), Address:="", SubAddress:= _

"Index", TextToDisplay:="Назад к указателю"

End With

Me.Hyperlinks.Add Anchor:=Me.Cells(l, 1), Address:="", _

SubAddress:="Start" & wSheet.Index, TextToDisplay:=wSheet.Name

End If

Next wSheet

End Sub

Рис. 5. Код VBA

Рис. 5. Код VBA

5. Нажмите Alt+Q, чтобы вернуться обратно к рабочей книге, и сохраните изменения. Не пугайтесь, что на листе Указатель ничего не произошло, и что вы не увидите ни одного макроса, если пройдете по меню ВидМакросы. Код устроен таким образом, что его нельзя запустить никаким образом, кроме как перейдя на лист Указатель. Поэтому перейдите на любой лист, а затем вернитесь на лист Указатель. Наблюдайте, как работает макрос!

Обратите внимание, что ячейкам А1 на каждом листе присваивается имя Start#, где # – уникальное целое число, представляющее номер листа в указателе. Это гарантирует, что у ячейки А1 каждого листа будет уникальное имя. Если у ячейки А1 на вашем листе уже есть имя, необходимо каждое упоминание ячейки А1 в коде изменить на что-то более подходящее — например, любую неиспользуемую ячейку листа. Увидеть образовавшийся список имен можно, пройдя по меню ФормулыДиспетчер имен (рис. 6).

Рис. 6. Диспетчер имен

Рис. 6. Диспетчер имен

Дополнение от 23 сентября 2016 г.

Еще один способ создания указателя использует макрофункцию в именованной формуле (подробнее см. Функция Получить.Ячейку). [2] Откройте книгу, в которой много рабочих листов и/или листов с диаграммами, и выполните следующее:

  1. Вставьте новый лист, на котором будет находиться список (назовите его, например, Указатель).
  2. Выполните команду Формулы –> Присвоить имя, чтобы открыть диалоговое окно Создание имени.
  3. Впишите в поле Имя название Список.
  4. Введите следующую формулу в поле Диапазон (рис. 7): =ЗАМЕНИТЬ(ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1);1;НАЙТИ(«]»;ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1));»»)
  5. Нажмите ОК, чтобы закрыть диалоговое окно Создание имени.

%d1%80%d0%b8%d1%81-7-%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b8%d0%bc%d0%b5%d0%bd%d0%b8-%d0%b4%d0%bb%d1%8f-%d0%b8%d0%bc%d0%b5%d0%bd%d0%be%d0%b2%d0%b0%d0%bd%d0%bd%d0%be%d0%b9-%d1%84

Рис. 7. Создание имени для именованной формулы

Обратите внимание: в формуле используется функция ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ, которая не относится к числу стандартных функций рабочего листа. Это макрофункция, написанная в сравнительно старом XLM-стиле и предназначенная для применения на специальном листе макросов. При использовании аргумента 1 она возвращает массив имен листов, причем перед именем каждого листа указано название книги, откуда он взят. Функции ЗАМЕНИТЬ и НАЙТИ удаляют имя книги, сопутствующее названию листа.

Чтобы сгенерировать имена листов, введите в ячейку А1 следующую формулу, а затем скопируйте ее ниже по столбцу: =ИНДЕКС(Слисок;СТРОКА()). На рис. 8 приведена данная формула для диапазона А1:А24. В книге 21 лист, поэтому формула возвращает ошибку #ССЫЛКА! при попытке отобразить имя несуществующего листа. Чтобы избежать этого, измените формулу следующим образом: =ЕСЛИОШИБКА(ИНДЕКС(Список;СТРОКА()));»»)

%d1%80%d0%b8%d1%81-8-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%84%d0%be%d1%80%d0%bc%d1%83%d0%bb%d1%8b-%d0%b4%d0%bb%d1%8f-%d0%be%d1%82%d0%be%d0%b1%d1%80%d0%b0

Рис. 8. Использование формулы для отображения списка имен листов

Список названий листов можно откорректировать, если вы переименовываете, добавляете или удаляете листы, но это не происходит автоматически. Чтобы принудительно обновить формулы, нажмите Ctrl+Alt+F9. Если вы хотите, чтобы имена листов обновлялись автоматически, измените формулу, чтобы сделать ее меняющейся: =ЗАМЕНИТЬ(ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1);1;НАЙТИ(«]»; ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1));»»)&Т(ТДАТА()). Функия Т проверяет, является ли значение текстовым, и возвращает сам текст, если да, либо две кавычки «» (пустой текст), если нет.

Зачем может понадобиться список названий листов? На рис. 9 показано оглавление, созданное как указано выше, а таже ссылки на ячейку А1 соответствующего листа. Например, в ячейке В2 записана формула =ГИПЕРССЫЛКА(«#»&A2&»!A1″;»Перейти по ссылке»). Щелкнув на гиперссылке, вы активизируете лист и выделяете ячейку А1. К сожалению, Excel не поддерживает гиперссылки, ведущие на лист с диаграммами, поэтому при попытке сослаться на такой лист программа выдаст ошибку.

Если вы пользуетесь такими приемами, то книгу нужно сохранить как файл с поддержкой макросов (в формате *.xlsm).

%d1%80%d0%b8%d1%81-9-%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5-%d1%81%d0%bf%d0%b8%d1%81%d0%ba%d0%b0-%d0%b3%d0%b8%d0%bf%d0%b5%d1%80%d1%81%d1%81%d1%8b%d0%bb%d0%be%d0%ba

Рис. 9. Создание списка гиперссылок


[1] По материалам книги Р.Холи, Д.Холи. Excel. Трюки, стр. 38–40

[2] По материалам книги Джон Уокенбах. Excel 2013. Трюки и советы. – СПб.: Питер, 2014. – С. 46–48.

Понравилась статья? Поделить с друзьями:
  • Получение результата формулы excel
  • Получение регрессионных моделей в ms excel прогнозирование в ms excel
  • Получение регрессионных моделей в ms excel 11 класс практическая работа скачать
  • Получение регрессионных моделей в ms excel 11 класс практическая работа ответы
  • Получение регрессионных моделей в microsoft excel практическая работа 11 класс