Создание рабочих листов из списка имен (Microsoft Excel)
У Коэна есть рабочий лист со списком имен в столбце A. Ему нужно создать рабочий лист для каждого имени в списке и назвать рабочий лист в соответствии с этим именем. Коэн подозревает, что для этого потребуется макрос, но он не знает, как решить такую задачу.
Эту задачу относительно легко выполнить, если вы используете макрос, и есть несколько способов сделать это. Один из простых способов — выбрать список имен рабочих листов, а затем запустить следующий макрос.
Sub AddWorksheetsFromSelection() Dim CurSheet As Worksheet Dim Source As Range Dim c As Range Set CurSheet = ActiveSheet Set Source = Selection.Cells Application.ScreenUpdating = False For Each c In Source sName = Trim(c.Text) If Len(sName) > 0 Then Worksheets.Add After:=Worksheets(Worksheets.Count) ActiveSheet.Name = sName End If Next c CurSheet.Activate Application.ScreenUpdating = True End Sub
Макрос по существу захватывает каждую ячейку в вашем выборе, создает новый лист, а затем переименовывает этот лист в соответствии с тем, что было в ячейке.
Макрос проверяет, действительно ли определенная ячейка что-то содержит (вы не можете переименовать рабочий лист, если в ячейке нет имени), но он все еще не так надежен, как мог бы быть. В вашем списке имен рабочих листов могут быть другие недостатки, которые могут привести к ошибкам при запуске макроса. Например, что, если в вашем списке есть дубликаты? Или он содержит имена, которые не поддерживает Excel? Этих (и любое количество других ошибок) можно было ожидать, и код был изменен для обработки таких ситуаций.
Хотя использование макроса для создания рабочих листов выполняется быстро и просто, вы можете отметить, что вам не обязательно использовать макрос. Фактически, вы можете использовать возможности сводной таблицы Excel для создания нужных листов. Предположим, для этого примера, что желаемые имена рабочих листов находятся в столбце A рабочего листа, и эта ячейка A1 содержит заголовок для столбца (например, «Имена» или «Рабочие листы»).
Что вы хотите сделать, так это создать сводную таблицу на основе этих имен. Выполните следующие действия:
-
Выберите любое имя рабочего листа в столбце.
-
Откройте вкладку Вставка на ленте.
-
Щелкните инструмент Сводная таблица в левой части ленты. Excel отображает диалоговое окно «Создание сводной таблицы» с уже указанным диапазоном имен рабочих листов. (См. Рис. 1.)
-
Щелкните ОК. Excel создает сводную таблицу и отображает область полей сводной таблицы в правой части экрана.
-
На панели полей сводной таблицы установите флажок рядом с полем, используемым для вашего списка листов. (Это должно быть что-то вроде «Имена»
или «Рабочие листы».) Excel корректирует сводную таблицу.
-
Перетащите имя отмеченного поля («Имена» или «Рабочие листы») в область «Фильтры» на панели «Поля сводной таблицы». (См. Рис. 2.)
-
Убедитесь, что на ленте отображается вкладка «Анализ». (Он должен был отображаться по умолчанию после создания сводной таблицы.)
-
Щелкните стрелку вниз под инструментом «Сводная таблица» в левой части ленты. Excel отображает некоторые варианты, которые вы можете сделать.
-
Щелкните стрелку вниз справа от выбора Параметры. (Не щелкайте сам вариант «Параметры»; при этом отображается диалоговое окно. Вам нужно просто щелкнуть стрелку вниз.)
-
Выберите опцию Показать страницы фильтра отчета. Excel отображает диалоговое окно Показать страницы фильтров отчета.
-
Щелкните ОК. Excel создает рабочий лист для каждого имени рабочего листа в вашем списке.
Важно понимать, что на этом этапе каждый из новых рабочих листов содержит небольшую сводную таблицу. Чтобы избавиться от этих сводных таблиц, вы можете подумать, что можете создать набор выбора из новых рабочих листов (щелкните первую вкладку рабочего листа, затем, удерживая нажатой клавишу Shift, щелкните последнюю вкладку рабочего листа), а затем нажмите клавишу «Удалить». Однако в моем тестировании это не сработало — Excel не позволит вам вносить изменения в сводные таблицы в режиме группового редактирования. Вместо этого вам нужно будет отображать каждый рабочий лист по очереди и удалить сводные таблицы.
Это может показаться трудоемким, но если вам нужно создать все эти рабочие листы за один раз, это может быть относительно быстрый способ сделать это без необходимости вызова макроса.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (13463) применим к Microsoft Excel 2007, 2010, 2013 и 2016.