Аннотация
Данная статья содержит Microsoft Visual Basic для приложений макроса (процедура Sub), который в цикле проходит через все листы активной книги. Этот макрос также отображается имя каждого листа.
Дополнительная информация
Корпорация Майкрософт предлагает примеры программного кода только для иллюстрации и без гарантии или подразумеваемых. Это включает, но не ограничиваясь, подразумеваемые гарантии товарной пригодности или пригодности для определенной цели. В данной статье предполагается, что вы знакомы с демонстрируемым языком программирования и средствами, которые используются для создания и отладки. Сотрудники службы поддержки Майкрософт могут объяснить возможности конкретной процедуры, но не выполнять модификации примеров для обеспечения дополнительных функциональных возможностей или создания процедур для определенных требований. Пример макроса, выполните следующие действия:
-
Введите следующий код макроса в лист модуля.
Sub WorksheetLoop() Dim WS_Count As Integer Dim I As Integer ' Set WS_Count equal to the number of worksheets in the active ' workbook. WS_Count = ActiveWorkbook.Worksheets.Count ' Begin the loop. For I = 1 To WS_Count ' Insert your code here. ' The following line shows how to reference a sheet within ' the loop by displaying the worksheet name in a dialog box. MsgBox ActiveWorkbook.Worksheets(I).Name Next I End Sub
-
Чтобы запустить макрос, поместите курсор в строку, которая считывает «Sub WorksheetLoop()» и нажмите клавишу F5.
Макрос будет цикла книги и отображает окно сообщения с именем другого листа при каждом выполнении цикла. Обратите внимание, что этот макрос будет отображать только имена листов; он будет отображаться имена других типов листов в книге. Можно также использовать цикл через все листы в книге с помощью цикла «For Each».
-
Введите следующий код макроса в лист модуля.
Sub WorksheetLoop2() ' Declare Current as a worksheet object variable. Dim Current As Worksheet ' Loop through all of the worksheets in the active workbook. For Each Current In Worksheets ' Insert your code here. ' This line displays the worksheet name in a message box. MsgBox Current.Name Next End Sub
-
Чтобы запустить макрос, поместите курсор в строку, которая считывает «Sub WorksheetLoop2()» и нажмите клавишу F5.
Этот макрос работает одинаково в макрос WorksheetLoop, за исключением того, что он использует другой тип цикла для обработки все листы активной книги.
Ссылки
Дополнительные сведения о получении справки по Visual Basic для приложений обратитесь к следующей статье Microsoft Knowledge Base:
163435 VBA: программные ресурсы для Visual Basic для приложений
226118 OFF2000: программные ресурсы для Visual Basic для приложений
Нужна дополнительная помощь?
SHARP Пользователь Сообщений: 154 |
#1 10.03.2017 13:32:18 Доброго времени суток
|
|
нужно понимать что Вы хотите получить от макроса Изменено: Ігор Гончаренко — 10.03.2017 14:09:11 Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете! |
|
SHARP Пользователь Сообщений: 154 |
#3 10.03.2017 14:32:04 Если в макрос вставить
тогда он будет всегда выполняться на всех листах, а мне нужно чтобы только при сохранении. Как проверить наличии «КнопкаЗОР» на листе |
|
Юрий М Модератор Сообщений: 60575 Контакты см. в профиле |
#4 10.03.2017 15:00:21
1. Вы сами просили на всех листах. |
||
SHARP Пользователь Сообщений: 154 |
Макрос «ЗАКРЫТЬ» вызывается нажатием кнопки активного листа и выполняется только на текущем листе |
Юрий М Модератор Сообщений: 60575 Контакты см. в профиле |
#6 10.03.2017 15:18:14
Перебирайте листы циклом и выполняйте нужные действия для каждого листа.
вызывает недоумение: не может лист не иметь имени. |
||||
SHARP Пользователь Сообщений: 154 |
про это я писал посте #3
Выходит нужно два макроса, с перебором листов и без и других вариантов нет? |
Юрий М Модератор Сообщений: 60575 Контакты см. в профиле |
Я читал #3. Зачем два макроса? Нажали на кнопку, макрос перебирает все листы, на каждом выполняет нужные операции. Проблема в чём? |
SHARP Пользователь Сообщений: 154 |
Проблема в том, что пи нажатии кнопки макрос должен выполнятся только на активном листе и мне не нужно, чтобы он перебирал другие листы и делал на них какие либо изменения. Данная задача ставиться только при сохранении книги. Изменено: SHARP — 10.03.2017 15:44:23 |
Юрий М Модератор Сообщений: 60575 Контакты см. в профиле |
#10 10.03.2017 15:59:30 Если при нажатии на кнопку макрос должен делать действия только на активном листе, а при событии сохранения пройтись по всем, то я бы добавил глобальную логическую переменную и проверял её значение: например, если ИСТИНА, обработали только активный лист и вышли из процедуры. Если ЛОЖЬ — выполняется цикл.
Макрос и так переберёт ВСЕ листы. Условие перебора всех листов задаётся не строкой, которую я цитировал, а параметрами цикла. В Вашем случае с первого листа по последний. |
||
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
#11 10.03.2017 16:02:49
Имена листов известны?
Можно так:
при условии, что кнопка является элементом форм или автофигурой. С ActiveX подход определения на листе иной будет, хоть общий принцип тот же. Или можно просто перебрать только нужные листы:
Изменено: The_Prist — 10.03.2017 16:05:12 Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||||||||
SHARP Пользователь Сообщений: 154 |
#12 10.03.2017 16:31:34
Я про это и спрашиваю. Я понимаю, что при разных условиях и разное решение. Решение готово, а условия построить не получается.
Все листы имеют разное название, но те, которые перебирать не надо — Известны.
у меня как раз ActiveX, но ваш код встал как влитой. Спасибо |
||||||
Юрий М Модератор Сообщений: 60575 Контакты см. в профиле |
#13 10.03.2017 18:39:45 В модуль книги:
В стандартный модуль:
Имена листов, которые обрабатывать не нужно, подставьте свои. |
||||
SHARP Пользователь Сообщений: 154 |
|
assedo Пользователь Сообщений: 43 |
#15 21.07.2017 16:38:39 Доброго времени суток
он выполняется только на первом листе заранее благодарю Изменено: assedo — 21.07.2017 16:39:31 |
||
Sanja Пользователь Сообщений: 14838 |
#16 21.07.2017 16:49:50 Для ВСЕХ листов
Согласие есть продукт при полном непротивлении сторон. |
||
assedo Пользователь Сообщений: 43 |
#17 21.07.2017 16:51:08 Sanja, |
Обычно мы можем запускать макрос на листе, если есть несколько листов, которые необходимо применить этот макрос, вы должны запускать код один за другим. Есть ли другой быстрый способ запустить один и тот же макрос на нескольких листах одновременно в Excel?
Запустить или выполнить один и тот же макрос на нескольких листах одновременно с кодом VBA
Запустить или выполнить один и тот же макрос на нескольких листах одновременно с кодом VBA
Чтобы запустить макрос на нескольких листах одновременно, не запуская его по одному, вы можете применить следующий код VBA, сделайте следующее:
1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модули, и вставьте следующий макрос в Модули Окно.
Код VBA: запускать один и тот же макрос на нескольких листах одновременно:
Sub Dosomething()
Dim xSh As Worksheet
Application.ScreenUpdating = False
For Each xSh In Worksheets
xSh.Select
Call RunCode
Next
Application.ScreenUpdating = True
End Sub
Sub RunCode()
'your code here
End Sub
Внимание: В приведенном выше коде скопируйте и вставьте свой собственный код без ниже заголовок и End Sub нижний колонтитул между Дополнительный код выполнения () и End Sub скрипты. Смотрите скриншот:
3. Затем поместите курсор на макрос первой части и нажмите F5 нажмите клавишу для запуска кода, и ваш код макроса будет применяться к одному листу.
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (13)
Оценок пока нет. Оцените первым!
Как применить макрос сразу ко всей книге целиком? |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Ill show you how to loop through all of the worksheets in a workbook in Excel using VBA and Macros.
This only takes a few lines of code and is rather simple to use once you understand it.
Here is the macro that will loop through all worksheets in a workbook in Excel:
Sub Sheet_Loop()
'count the number of worksheets in the workbook
sheet_count = ActiveWorkbook.Worksheets.Count
'loop through the worksheets in the workbook
For a = 1 To sheet_count
'code that you want to run on each sheet
'simple message box that outputs the name of the sheet
MsgBox ActiveWorkbook.Worksheets(a).Name
Next a
End Sub
Now, Ill go through the macro step-by-step.
ActiveWorkbook.Worksheets.Count
This line is what counts the number of worksheets that are in the workbook.
The first part of the line simply sets the variable sheet_count equal to the number of sheets in the workbook:
sheet_count = ActiveWorkbook.Worksheets.Count
Now that we know how many worksheets there are, we can loop through them.
We are going to use a very simple For Next loop in this case and you can copy it directly from here into your project.
For a = 1 To sheet_count
'code that you want to run on each sheet
Next a
In the above lines we are creating a new variable a and setting it equal to 1. We then use the sheet_count variable to tell the macro when to stop looping; remember that it holds the numeric value of how many sheets there are in the workbook.
After this first line, which creates the loop, we then put all of the code that we want to run on each worksheet.
Dont forget that, at the end of the loop we still need something:
Next a
This tells the For loop that it should increment the value of the a variable by 1 each time the loop runs through a cycle or goes through a sheet. The loop will not work without this line of code at the end of it.
In the original example we also have a line of code within the For loop:
MsgBox ActiveWorkbook.Worksheets(a).Name
This line will output the name of each worksheet into a pop-up message box; it also illustrates how you can access the worksheets from within the loop.
To do anything with the sheets from within the loop, we need to access each sheet by its reference or index number. Each sheet has an index number and it always starts at 1 and increments by 1 for the next sheet in the workbook.
This is why we create the a variable and set it equal to 1 in the For loop, because the first sheet in the workbook always has an index number of 1, and we want to use a as the index number to access the worksheets.
Each time the loop runs and a is incremented by one, this allows you to access the next sheet in the workbook. This is why we needed to count how many sheets were in the workbook, so we would know when to tell the For loop to stop running because there were no more sheets.
So, we can access the worksheets from within the loop by using
ActiveWorkbook.Worksheets(index number)
or
Sheets(index number)
Remember that the variable a is being used as our index number in this case.
Using this method you can do anything you want with the corresponding worksheet.
And thats how you loop through all worksheets in a workbook in Excel!
Make sure to download the accompanying file for this tutorial so you can see the VBA/Macro code in action.
Similar Content on TeachExcel
Get the Name of a Worksheet in Macros VBA in Excel
Tutorial: How to get the name of a worksheet in Excel using VBA and Macros and also how to store tha…
Excel Input Form with Macros and VBA
Tutorial:
Forms Course
How to make a data entry form in Excel using VBA and Macros — this allows yo…
Get User Submitted Data from a Prompt in Excel using VBA Macros
Tutorial: How to prompt a user for their input in Excel.
There is a simple way to do this using VBA …
Find the Next Blank Row with VBA Macros in Excel
Tutorial:
Learn how to find the next empty cell in a range in Excel using VBA and Macros. This me…
Loop Through an Array in Excel VBA Macros
Tutorial:
I’ll show you how to loop through an array in VBA and macros in Excel. This is a fairly…
Copy Data or Formatting to Multiple Worksheets in Excel
Tutorial:
Quickly copy all or parts of a single worksheet — data, formatting, or both — to multiple…
Subscribe for Weekly Tutorials
BONUS: subscribe now to download our Top Tutorials Ebook!
Sub ЭкспортПрайсЛистаВФорматеCSV()
On Error Resume Next
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
sh.Activate
‘ диапазон ячеек с A5 до последней заполненной ячейки в столбце A
‘ расширенный по горизонтали на 10 столбцов (выгружаются столбцы с A по J)
Dim ra As Range: Set ra = sh.Range(sh.[A5], sh.Range(«A» & sh.Rows.Count).End(xlUp)).Resize(, 10)
‘ формируем текстовую строку, содержащую текст диапазона в формате CSV
CSVtext$ = Range2CSV(ra, «;») ‘ можно указать другой разделитель столбцов
‘ создаём в папке с файлом XLS подпапку для CSV-прайсов (если такой папки ещё нет)
CSVfolder$ = ThisWorkbook.Path & «CSV prices»: MkDir CSVfolder$
‘ формируем имя создаваемого файла CSV (c указанием текущей даты)
CSVfilename$ = Format(Now, «YYYY MM DD HH-NN-SS») & «.csv»
‘ сохраняем текстовую CSV-строку CSVtext$ в файл с именем CSVfilename$
SaveTXTfile CSVfolder$ & CSVfilename$, CSVtext$
Next sh
End Sub
Function Range2CSV(ByRef ra As Range, Optional ByVal ColumnsSeparator$ = «;», _
Optional ByVal RowsSeparator$ = vbNewLine) As String
If ra.Cells.Count = 1 Then Range2CSV = ra.Value & RowsSeparator$: Exit Function
If ra.Areas.Count > 1 Then
Dim ar As Range
For Each ar In ra.Areas
Range2CSV = Range2CSV & Range2CSV(ar, ColumnsSeparator$, RowsSeparator$)
Next ar
Exit Function
End If
arr = ra.Value
‘ иначе конкатенация длинных текстовых строк притормаживает макрос
chr34$ = Chr(34): buffer$ = «»: buffer2$ = «»: Const BufferLen& = 15000
For i = LBound(arr, 1) To UBound(arr, 1)
txt = «»: For j = LBound(arr, 2) To UBound(arr, 2)
txt = txt & ColumnsSeparator$ & chr34$ & Replace(arr(i, j), chr34$, «‘») & chr34$
Next j
buffer$ = buffer$ & Mid(txt, Len(ColumnsSeparator$) + 1) & RowsSeparator$
‘ для многократного увеличения производительности при больших диапазонах данных
If Len(buffer$) > BufferLen& Then
buffer2$ = buffer2$ & buffer$: buffer$ = «»
If Len(buffer2$) > BufferLen& * 40 Then _
Range2CSV = Range2CSV & buffer2$: buffer2$ = «» ‘: DoEvents
End If
Next i
Range2CSV = Range2CSV & buffer2$ & buffer$
End Function
Function SaveTXTfile(ByVal filename As String, ByVal txt As String) As Boolean
On Error Resume Next: Err.Clear
Set fso = CreateObject(«scripting.filesystemobject»)
Set ts = fso.CreateTextFile(filename, True)
ts.Write txt: ts.Close
SaveTXTfile = Err = 0
Set ts = Nothing: Set fso = Nothing
End Function
[свернуть]
1 / 1 / 0 Регистрация: 04.03.2013 Сообщений: 42 |
|
1 |
|
Обеспечить работу макроса для всех листов04.03.2013, 16:39. Показов 2057. Ответов 1
Допустим я сделал макрос для листа под названием «январь», а как сделать для всех листов в книге с названиями месяцев, что бы вручную не вводить название каждого месяца в макросе?
0 |
Скрипт 5468 / 1148 / 50 Регистрация: 15.09.2012 Сообщений: 3,514 |
||||
04.03.2013, 16:57 |
2 |
|||
Сообщение было отмечено Памирыч как решение РешениеКод: Кликните здесь для просмотра всего текста
0 |
На чтение 7 мин. Просмотров 2.9k.
Итог: узнайте несколько способов, как показать несколько листов одновременно с помощью макроса VBA или надстройки.
Уровень мастерства: Средний
Содержание
- Не удается отобразить несколько листов в Excel?
- # 1 — Используйте окно VBA Immediate, чтобы отобразить все
- # 2 — Использование макроса для отображения нескольких листов
- Показать листы, которые содержат определенное имя
- # 3 — Используйте Tab Hound или Tab Control
- Публикация отчетов? Управление вкладками сэкономит ваше время
- Заключение
Не удается отобразить несколько листов в Excel?
Как вы, вероятно, знаете, вы не можете отобразить два или
более листов одновременно в Excel. Меню «Показать» позволяет выбрать только
один лист за раз.
Это может сделать процесс показа нескольких листов очень
трудоемким, особенно если вы хотите отобразить все листы в рабочей книге.
Поэтому в этой статье мы рассмотрим несколько разных способов быстрого
отображения листов.
Самый быстрый способ сделать все листы видимыми в Excel — это использовать макрос (VBA). В следующей строке кода VBA цикл For Next Loop используется для циклического просмотра каждого листа в активной книге и отображения каждого листа.
For Each ws In Sheets:ws.Visible=True:Next
Вы можете
запустить этот код в непосредственном окне редактора VB в три простых шага:
- Alt + F11 (открывает окно редактора VB)
- Ctrl + G (открывает немедленное окно)
- Вставьте следующую строку кода в Immediate Window и нажмите Enter
For Each ws In Sheets:ws.Visible=True:Next
Скриншот ниже показывает, как реализовать эти шаги.
Эта строка кода проходит по всем рабочим листам в рабочей книге и устанавливает для каждого видимого свойства листа значение «True». Это делает каждый лист видимым, что аналогично отображению каждого листа.
Символ двоеточия «:», используемый в коде, позволяет объединить несколько строк кода в одну строку. Это позволяет запускать в «Немедленном окне», потому что «Немедленное окно» оценивает только одну строку кода за раз.
Ознакомьтесь с моей статьей о 5 способах использования окна VBA Immediate, чтобы узнать больше. И большое спасибо Jan Karel Pieterse из www.jkp-ads.com за то, что поделились этим трюком в разделе комментариев.
# 2 — Использование макроса для отображения нескольких листов
Если вы ломаете голову над этой строкой кода в # 1, этот раздел должен помочь объяснить это лучше.
Макрос ниже — это та же самая строка кода, но она разбита на несколько строк. Это значительно облегчает чтение и понимание.
Sub Unhide_Multiple_Sheets() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets ws.Visible = xlSheetVisible Next ws End Sub
Строки в приведенном выше коде, начинающиеся с «For» и «Next», представляют оператор цикла For-Next. Первая строка «For Each ws In ActiveWorkbook.Worksheets» указывает макросу циклически проходить по каждому листу в коллекции рабочих листов.
Эта строка также ссылается на переменную «ws» и устанавливает ее для представления объекта рабочего листа. Это означает, что «ws» временно представляет текущий рабочий лист в цикле.
Когда вводится строка кода «Next ws», макрос переходит обратно к первой строке кода в цикле и снова оценивает ее. Он продолжает циклически перебирать все листы в коллекции рабочих листов (Activeworkbook.Worksheets).
Затем мы можем использовать «ws» внутри цикла, чтобы изменить свойства текущего рабочего листа. В этом случае мы устанавливаем свойство «Видимый» листа, чтобы оно было видимым (xlSheetVisible). Свойство visible имеет три различных свойства на выбор:
xlSheetHidden
xlSheetVeryHidden
xlSheetVisible
Вы также можете установить для свойства значение «True», которое работает так же, как xlSheetVisible.
Вот документация по VBA Visible property от Microsoft. И ознакомьтесь с моей статьей the For Next Loop для подробного объяснения того, как это работает.
Показать листы, которые содержат определенное имя
Что, если мы хотим только показать листы, которые содержат слово «pivot» в названии листа?
Мы можем добавить простую инструкцию IF в макрос только для отображения листов, которые содержат определенное имя или текст.
Sub Unhide_Sheets_Containing() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets If InStr(ws.Name, "pivot") > 0 Then ws.Visible = xlSheetVisible End If Next ws End Sub
Функция InStr ищет текст в
строке и возвращает позицию первого вхождения текста. Это сокращение от
InString, и функция аналогична функциям ПОИСК или НАЙТИ в Excel.
Таким образом, в этом
случае мы ищем любой лист, который содержит слово «pivot» в названии листа.
Ссылка «ws.name» возвращает имя листа, который в данный момент оценивается в
цикле For-Next.
Таким образом, эта строка
«Если InStr (ws.Name,« pivot »)> 0 Тогда» в основном говорит, что если в
имени листа найдено слово «pivot», то функция Instr вернет число больше нуля.
Оператор IF будет иметь значение True, и будет выполнена следующая строка кода,
чтобы отобразить лист.
Если слово «pivot» НЕ найдено в имени листа, тогда оператор IF будет иметь значение «False», а код пропустит все строки, пока не достигнет строки «End If». Поэтому лист, который в данный момент оценивается в цикле, сохранит свое текущее свойство visible (видимое или скрытое).
Этот макрос отлично работает, если вы скрываете и скрываете листы каждый день / неделю / месяц для сохраняемого вами отчета. Запустите макрос, чтобы отобразить определенные листы при открытии книги. После того, как вы закончите, запустите тот же код, но измените свойство visible на xlSheetHidden, чтобы заново скрыть листы (для этого вы можете создать новый макрос).
# 3 — Используйте Tab Hound или Tab Control
Если весь этот код заставляет вас вращаться, надстройка Tab Hound позволяет отображать несколько листов одним нажатием кнопки просмотра.
Скриншот ниже показывает, насколько это просто.
В окне Tab Hound
содержится список всех листов рабочей книги. Вы можете выбрать несколько листов
в списке, а затем нажать кнопку «Показать», чтобы отобразить все выбранные
листы.
Это делает процесс показа
нескольких листов действительно быстрым!
Вкладка Hound также содержит дополнительные способы фильтрации списка листов. Вы можете ввести поиск в поле поиска, отфильтровать все видимые или скрытые вкладки и даже отфильтровать по цвету вкладок. Это позволяет легко находить листы, которые вы ищете, а затем выполнять над ними такие действия, как скрытие / скрытие.
В этом видео также показано, как быстро скрыть и показать несколько листов с помощью Tab Hound
Нажмите здесь, чтобы узнать больше о Tab Hound
Публикация отчетов? Управление вкладками сэкономит ваше время
Если вы создаете
еженедельные или ежемесячные отчеты и хотите убедиться, что все нужные листы
спрятаны перед отправкой, надстройка Tab Control может сэкономить вам много
времени.
Вот сценарий, с которым мы обычно сталкиваемся …
Нам необходимо обновить рабочую книгу новыми данными на этой неделе и внести некоторые изменения, прежде чем отправлять ее по электронной почте. Эти обновления требуют от нас показать несколько листов, внести изменения, а затем снова скрыть листы. Это может занять много времени, если вам нужно скрыть / показать много листов.
Вкладка «Управление» установит контрольный лист в вашей рабочей книге со списком всех имен рабочих листов. Вы можете установить видимое свойство для каждого листа в списке, а затем нажать кнопку, чтобы скрыть или показать все листы на основе списка.
Это означает, что вы можете настроить контрольный лист для определенного вида, чтобы были видны только определенные рабочие листы. Нажмите кнопку «Запустить обновление», и все листы будут скрыты / скрыты на основе вашего контрольного листа. Это гарантирует, что ваш отчет будет показывать правильные листы каждый раз, когда вы отправляете его, и вы будете выглядеть действительно организованно.
Надстройка Tab Control
входит в состав Tab Hound.
Нажмите здесь, чтобы узнать больше о Tab Hound
Заключение
Для одновременного
отображения нескольких листов в Excel потребуется код или макрос. Есть еще один
способ использования пользовательских представлений, но он имеет ограничения,
если вы используете таблицы Excel (а я люблю таблицы).
Надеюсь, вы узнали некоторый код VBA, который вы можете реализовать. Вы также можете добавить макросы в личную книгу макросов, чтобы запускать их в любое время.
Если кодирование не ваша вещь, оцените надстройку Tab Hound. Это сэкономит ваше время и сделает вашу жизнь намного проще. (беспроигрышный вариант!)