Как найти лист, который можно скрыть среди множества скрытых листов

У Стива есть рабочая тетрадь, в которой он создает новую вкладку рабочего листа для каждого проекта, над которым работает. Чтобы все было под контролем, он скрывает завершенные вкладки/проекты. У Стива теперь более 100 скрытых листов. У него регулярно возникает потребность вернуться к завершенному проекту. Для этого Стив решает показать рабочие листы. Откроется диалоговое окно «Показать», которое содержит имена скрытых рабочих листов в произвольном порядке. Чтобы найти вкладку/проект, ему нужно прокрутить это очень маленькое диалоговое окно и найти нужную вкладку. Стив считает это очень трудоемким и требующим много времени, поэтому ему интересно, есть ли лучший способ найти и отобразить рабочий лист для завершенного проекта.

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

Вы также можете создать вторую книгу, содержащую только ваши завершенные проекты. Перемещать листы из одной книги в другую довольно легко, поэтому использовать две книги («активная» и «завершенная») будет несложно. Кроме того, вам не нужно скрывать какие-либо рабочие листы в книге, содержащие завершенные проекты, и вы можете расположить их в любом желаемом порядке.

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

Sub UnHideWorksheets () Dim sSheetName As String Dim w As Worksheet Dim sTemp As String sTemp = «Имя (или часть) листа для отображения?» sSheetName = InputBox (sTemp, «Показать скрытый лист») Если sSheetName> «» Тогда sSheetName = LCase (sSheetName) Для каждого w в листах w.Tab.ColorIndex = xlColorIndexNone sTemp = LCase (w.Name) Если Instr (sTeName) ) Then w.Visible = True w.Tab.ColorIndex = 6 End If Next w End IfEnd Sub

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

Источник: frestage.ru

Бытовой вопрос