- Microsoft Excel
- Как создать список всех листов, содержащихся в книге Excel при помощи макрофункции
- Как сделать список листов в Excel?
- Способ 1. Формула
- Способ 2. Пользовательская функция (UDF)
- Как получить список листов книги Excel
- Список листов с помощью формулы
- Как составить список листов через VBA
- Надстройки для составления списка листов
- Как подсчитать количество листов в книге
Microsoft Excel
трюки • приёмы • решения
Как создать список всех листов, содержащихся в книге Excel при помощи макрофункции
Странно, но в Excel невозможно напрямую сгенерировать список имен листов из книги. В этой статье будет рассказано, как создать список всех листов, содержащихся в книге. Как и в предыдущей статье, здесь мы будем использовать макрофункцию из Excel 4 XLM в именованной формуле.
Начнем с книги, в которой много рабочих листов или листов с диаграммами. Выполните следующие действия, чтобы создать список названий листов.
- Вставьте новый лист, на котором будет находиться список.
- Выполните команду Формулы ► Присвоить имя, чтобы открыть диалоговое окно Создание имени.
- Впишите в поле Имя название Список.
- Введите следующую формулу в поле Диапазон (рис. 9.1): =ЗАМЕНИТЬ(ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1);1;НАЙТИ(«]»;ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1));»») .
- Осталось нажать ОК, чтобы закрыть диалоговое окно Создание имени.
Рис. 9.1. Работа с окном Создание имени для создания именованной формулы
Обратите внимание: в формуле используется функция ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ, которая не относится к числу стандартных функций рабочего листа. Это макрофункция, написанная в сравнительно старом XLM-стиле и предназначенная для применения на специальном листе макросов. При использовании аргумента 1 она возвращает массив имен листов, причем перед именем каждого листа указано название книги, откуда он взят. Функции ЗАМЕНИТЬ и НАЙТИ удаляют имя книги, сопутствующее названию листа. Чтобы сгенерировать имена листов, введите в ячейку А1 следующую формулу, а затем скопируйте ее ниже по столбцу: =ИНДЕКС(Список;СТРОКА()) .
На рис. 9.2 приведена данная формула для диапазона А1:А10. В книге семь листов, поэтому формула возвращает ошибку #ССЫЛКА! при попытке отобразить имя несуществующего листа. Чтобы избежать этого, измените формулу следующим образом: =ЕСЛИОШИБКА(ИНДЕКС(Список;СТРОКА());»») .
Рис. 9.2. Использование формулы для отображения списка имен листов
Список названий листов можно откорректировать, если вы будете добавлять, удалять или переименовывать листы, но это не происходит автоматически. Чтобы принудительно обновить формулы, нажмите Ctrl+Alt+F9. Если вы хотите, чтобы имена листов автоматически обновлялись при пересчете книги, измените именованную формулу следующим образом, чтобы сделать ее меняющейся: =ЗАМЕНИТЬ(ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1);1;НАЙТИ(«]»;ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1));»»)&Т(ТДАТА()) .
Рис. 9.3. Создание списка гиперссылок
Зачем может понадобиться список названий листов? На рис. 9.3 показано оглавление, созданное с помощью ссылки ГИПЕРССЫЛКА. В ячейке В1 записана следующая формула: =ГИПЕРССЫЛКА(«#»&A1&»!A1″;»Перейти по ссылке») . Щелкнув на гиперссылке, вы активизируете лист и выделяете ячейку А1. К сожалению, Excel не поддерживает гиперссылок, ведущих на лист с диаграммами, поэтому при попытке сослаться на такой лист программа выдаст ошибку.
Если вы пользуетесь такими приемами, то книгу нужно сохранить как файл с поддержкой макросов (в формате *.xlsm или *.xls).
Источник
Как сделать список листов в Excel?
Поговорим о различных способах создания списка листов книги в Excel для составления оглавления всей книги и удобной навигации между листами.
Приветствую всех, дорогие читатели блога TutorExcel.Ru.
Причин составить список всех листов книги в Excel может быть превеликое множество — составление оглавления, навигация и т.д.
Для небольшого количества листов эту задачу можно сделать вручную, просто руками скопировав все названия.
Однако при изменении имени листа (или их очередности в книге) придется по новой переписывать названия или изменять порядок.
К тому же, если в книге насчитывается не один или два, а уже несколько десятков листов, то с этой задачей будет справиться еще сложнее.
Поэтому рассмотрим 2 варианта создания списка, которые помогут нам автоматизировать процесс:
- Формула. С помощью стандартных функций получим имена всех листов книги;
- Пользовательская функция (UDF). Аналогичный способ реализованный посредством VBA.
Способ 1. Формула
Воспользуемся свойствами функции ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ (в английском варианте GET.WORKBOOK), которая позволит нам получить список всех листов текущей книги.
Для начала перейдем в Диспетчер имен — переходим в панели вкладок на вкладку Формулы в раздел Определенные имена и добавляем новое имя (к примеру, Список_листов) в качестве диапазона которого прописываем следующую формулу:
=ЗАМЕНИТЬ(ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1);1;НАЙТИ(«]»;ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1));»»)
Формально в качестве формулы можно было прописать только =ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1), однако в этом случае в названиях листов будет также содержаться названия книги (например, [Книга1.xlsb]Лист1).
Удаляем все до символа правой закрывающейся квадратной скобки ], в итоге мы оставляем только имя листа (Лист1), и чтобы не делать это формульно каждый раз при обращении к отдельным элементам переменной Список_листов, сделаем это один раз сразу для всех элементов (как в примере выше).
Таким образом, в новой созданной переменной Список_листов содержатся название всех листов текущей книги, своего рода массив с данными, теперь же нам нужно извлечь их оттуда.
Для работы с массивом воспользуемся функцией ИНДЕКС (в английской версии INDEX), которая по порядковому номеру вытаскивает элемент массива, и функцией СТРОКА (английский вариант ROW) для создания простой нумерации:
Далее для удобства навигации с помощью функция ГИПЕРССЫЛКА (в английской версии HYPERLINK) добавим гиперссылки к названиям листов:
В результате каждая гиперссылка будет вести на ячейку A1 соответствующего имени листа.
Переходим к следующему способу.
Способ 2. Пользовательская функция (UDF)
Чтобы каждый раз не вспоминать алгоритм извлечения имени листа, реализуем пользовательскую функцию с идентичным функционалом.
Все стандартно: переходим в редактор Visual Basic (сочетание клавиш Alt + F11), создаем новый модуль и копируем туда текст функции:
Источник
Как получить список листов книги Excel
Листам в книгах Excel можно дать имена, соответствующие содержимому. Из них было бы удобно составить оглавление, но не все знают, как это сделать. Существуют несложные способы сформировать список листов и методы, требующие усилий, например установки сторонних дополнений. С помощью инструментов Excel пользователи также могут подсчитать количество листов в крупной книге. Выясним, как получить оглавление для чтения или перехода к каждому листу, какими формулами для этого нужно воспользоваться.
Список листов с помощью формулы
Этот способ основан на использовании функции, которую нельзя найти в Менеджере. Она связана с макросами Excel 4.0. Чтобы применить формулу на практике, необходимо пройти дополнительный шаг, редко встречающийся в работе с функциями – зайти в диспетчер имен и добавить туда выражение.
- Переходим на вкладку «Формулы» и кликаем по кнопке «Диспетчер имен». Опция находится в разделе «Определенные имена».
- Нажимаем «Создать» в открывшемся диалоговом окне.
- Записываем новое имя в верхнем поле, выбираем область «Книга» (обычно она установлена по умолчанию) и записываем в графу «Диапазон» эту формулу: =ЗАМЕНИТЬ(ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1);1; НАЙТИ(«]»;ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1));»»)
- После заполнения всех полей жмем «ОК». В книге Excel пока ничего не изменится, но эти шаги помогут в будущем. Окно диспетчера имен можно закрыть.
- Открываем лист, где будет расположен список. Выбираем ячейку и записываем в ней формулу с только что созданным именем: =ИНДЕКС(Список_листов;СТРОКА()). Нажмите Enter, и в ячейке появится название первого листа.
- Необходимо вывести все названия листов в столбец. Для этого зажимаем маркер заполнения, который находится в правом нижнем углу выбранной ячейки, и выделяем нужное количество ячеек. В таблице-примере 4 листа столько и было выделено ячеек.
- Создадим список, из которого можно перейти на каждый лист. Выберите другую пустую ячейку и вставьте эту формулу: =ГИПЕРССЫЛКА(«#»&A1&»!A1″;»»&A1).
Обратите внимание! Ячейка A1 прописывается в формуле, чтобы пользователи могли перейти на конкретную ячейку каждого листа. После нажатия Enter появится кликабельное название листа.
- Полный список с гиперссылками можно создать так же, с помощью маркера заполнения.
- Если название листа изменено, придется перезаполнить списки – для этого нужно просто удалить их, снова вставить те же формулы и выделить ячейки ниже.
Важно! Невозможно сделать ссылку на лист с диаграммой в Excel. На экране появляется сообщение об ошибке, переход не происходит.
Как составить список листов через VBA
Существует другой способ составления списка листов из книги – можно подключить пользовательскую функцию через редактор Visual Basic. Такой метод может показаться сложным, но это не так, если воспользоваться шаблоном для добавления функции в программу.
- Открываем VBA с помощью комбинации клавиш «Alt+F11». Если при нажатии F11 снижается яркость или срабатывает другая функция, установленная на эту кнопку, зажмите клавишу Fn.
- Нажмите «Вставить» (Insert) на верхней панели и выберите в открывшемся меню пункт «Модуль» (Module).
- Вставляем в свободное поле этот текст:
- Далее можно закрыть окно Visual Basic, потому что этот инструмент больше не понадобится, а функция уже добавлена в программу.
- Открываем лист для списка и вводим формулу в начальную ячейку. Теперь не нужно длинное выражение, чтобы создать список листов. Новая формула выглядит так: =SheetList(СТРОКА()).
- Нажимаем Enter и получаем название листа в ячейке. Маркером заполнения создаем список.
- Для гиперссылок придется использовать ту же длинную формулу: =ГИПЕРССЫЛКА(«#»&A1&»!A1″;»»&A1).
Надстройки для составления списка листов
Надстройки – это дополнения для Microsoft Excel, которые создаются продвинутыми пользователями. Компания Microsoft рассказывает на официальном сайте о возможности подключить надстройки, но не предлагает скачать дополнения, поэтому обычно их загружают из других источников.
Всегда проверяйте загрузки на вредоносные элементы с помощью антивирусной программы.
Существуют платные и бесплатные надстройки. Сегодня рассмотрим набор дополнений для Excel 2007-2019 под названием «Ёxcel». Разработчик распространяет файл на своем сайте за добровольное пожертвование. Установите надстройку по инструкции – после этого можно приступать к составлению списка.
- Открываем лист, где будет размещен список, и нажимаем левой кнопкой мыши на начальную ячейку будущего перечисления.
- На вкладке надстройки находим кнопку «Листы». Кликаем по ней, чтобы открылось меню, и выбираем пункт «Получить список листов книги». Скриншот создателя надстройки:
- Выбираем, какие листы показать в списке. Для простейшего перечисления названий листов кликаем по пункту «Простой список» и жмем на кнопку с галочкой в левом нижнем углу диалогового окна.
- На экране появится список листов. Если выставить настройки сложнее, то внешний вид списка немного изменится.
Как подсчитать количество листов в книге
Иногда в книгах Excel появляется много листов, например если документ относится к крупному проекту. Выяснить, сколько в файле страниц, можно с помощью функции ЛИСТЫ.
Обратите внимание! Функция работает только в версиях Microsoft Excel от 2013.
- Выбираем пустую ячейку и записываем в ней формулу: =ЛИСТЫ(). Не обязательно заполнять аргумент «Ссылка», если нужно посчитать листы в одной книге.
- Жмем Enter и получаем числовое значение.
Если все листы переименованы, и нужно узнать их номера, воспользуйтесь функцией ЛИСТ. Эта формула также доступна с 2013-й версии. У функции ЛИСТ один аргумент – «Значение». Если аргумент не заполнен, после нажатия клавиши Enter в ячейке появится номер того же листа, где была введена формула. Простое выражение с ЛИСТ выглядит так: =ЛИСТ().
Источник