Скрыть все листы миф excel

Skip to content

Как скрыть все, кроме активного рабочего листа

На чтение 2 мин. Просмотров 2.1k.

Что делает макрос: Бывают ситуации, когда Вы не можете удалить все, кроме активного листа, как мы это делали в предыдущем макросе. Есть более мягкий вариант — просто скрыть листы. Excel не позволяет скрыть все листы в книге — по крайней мере, один должен быть виден. Тем не менее, вы можете скрыть все, кроме активного листа.

Содержание

  1. Как макрос работает
  2. Код макроса
  3. Как работает этот код
  4. Как использовать

Как макрос работает

Этот макрос с помощью цикла пробегает по всем рабочим листам и проверяет на соответствие имени каждого рабочего листа и имя активного листа. Каждый раз, когда имя не совпадает, он скрывает лист.

Код макроса

Sub SkritVseKromeAktivnogoLista()
'Шаг 1: Объявляем переменную
Dim ws As Worksheet
'Шаг 2: Запускаем цикл по всем рабочим листам
For Each ws In ThisWorkbook.Worksheets
'Шаг 3: Сравниваем имя каждого листа с активным
If ws.Name <> ThisWorkbook.ActiveSheet.Name Then
'Шаг 4: Скрываем лист, если не совпадают
ws.Visible = xlSheetHidden
End If
'Шаг 5: Переходим на следующий рабочий лист
Next ws
End Sub

Как работает этот код

  1. Объявляем переменную WS, которая будет хранить имя каждого листа.
  2. На шаге 2 макрос начинает цикл по всем рабочим листам в этой книге.
  3. На этом этапе сравниваем активное имя листа с листом, который определяется с помощью цикла.
  4. Если имена листов различны, макрокоманда скрывает лист.
  5. На шаге 5, переходим к следующему листу книги и повторяем проверку снова. После того, как пробежались по всем листам, макрос завершается.

Вы заметили, что мы использовали xlSheetHidden в нашем макросе. Это свойство, которое получается, когда мы щелкает правой кнопкой мыши на листе и выбираем: Скрыть. В этом случае пользователь может щелкнуть правой кнопкой мыши на любой вкладке и выбрать: Отобразить. Он увидит все листы, которые скрыты. Но есть один вариант скрытия, который является более секретным. Если вы будете использовать xlSheetVeryHidden, чтобы скрыть свои листы, пользователи не смогут увидеть их, даже если они щелкнут правой кнопкой мыши на любой вкладке и выберут:Отобразить. Единственный способ, чтобы отобразить лист, скрытый таким способом, с помощью VBA.

Как использовать

Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код во вновь созданном модуле.

Обращение к рабочим листам Excel из кода VBA. Переименование листов, скрытие и отображение с помощью кода VBA Excel. Свойства Worksheets.Name и Worksheets.Visible.

Обращение к рабочим листам

Рабочий лист (Worksheet) принадлежит коллекции всех рабочих листов (Worksheets) книги Excel. Обратиться к листу можно как к элементу коллекции и, напрямую, по его уникальному имени.

Откройте редактор VBA и обратите внимание на вашу книгу в проводнике, где уникальные имена листов указаны без скобок, а в скобках — имена листов, отображаемые на ярлычках в открытой книге Excel. Уникальные имена листов отсортированы по алфавиту и их расположение по порядку не будет соответствовать их индексам (номерам), если листы перемещались по отношению друг к другу. Индексы листов смотрите по порядку расположения ярлычков в открытой книге. Переместили листы — изменились их индексы.

Обращение к рабочему листу в коде VBA Excel:

‘По уникальному имени

УникИмяЛиста

‘По индексу

Worksheets(N)

‘По имени листа на ярлычке

Worksheets(«Имя листа»)

  • УникИмяЛиста — уникальное имя листа, отображаемое в проводнике редактора VBA без скобок, с помощью кода VBA изменить его невозможно.
  • N — индекс листа от 1 до количества всех листов в книге, соответствует порядковому номеру ярлычка этого листа в открытой книге Excel.
  • Имя листа — имя листа, отображаемое в проводнике редактора VBA в скобках, с помощью кода VBA изменить его можно.

Количество листов в рабочей книге Excel определяется так:

‘В активной книге

Worksheets.Count

‘В любой открытой книге,

‘например, в «Книга1.xlsm»

Workbooks(«Книга1.xlsm»).Worksheets.Count

Переименование листов

В VBA Excel есть некоторые особенности в наименовании листов, так как у рабочего листа есть два свойства, связанных с именем: (Name) и Name. Откройте окно «Properties» в редакторе VBA, нажав клавишу «F4», и выделите любой лист в проводнике. Вы увидите, что в окне «Properties» свойству (Name) в скобках соответствует в проводнике уникальное имя листа без скобок, а свойству Name без скобок соответствует изменяемое имя листа в скобках. Оба имени в окне «Properties» можно редактировать.

С помощью кода VBA Excel можно редактировать только имя листа Name, отображаемое на ярлычке листа и в проводнике без скобок. Для этого используется свойство рабочего листа Worksheets.Name со следующим синтаксисом:

expression.Name

где expression — переменная, представляющая собой объект Worksheet. Смена имени осуществляется путем присвоения нового значения свойству Worksheets.Name.

Допустим, у нас есть лист с уникальным именем (Name) — Лист1, индексом — 1 и именем Name — МойЛист, которое необходимо заменить на имя — Реестр.

Лист1.Name = «Реестр»

Worksheets(1).Name = «Реестр»

Worksheets(«МойЛист»).Name = «Реестр»

Скрытие и отображение листов

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

expression.Visible

где expression — переменная, представляющая собой объект Worksheet. Свойству Worksheet.Visible могут присваиваться следующие значения:

  • False — лист становится невидимым, но он будет присутствовать в списке скрытых листов, и пользователь сможет его отобразить с помощью инструментов рабочей книги Excel.
  • xlVeryHidden — лист становится супер невидимым и его не будет в списке скрытых листов, пользователь не сможет его отобразить. Актуально для Excel 2003-2016.
  • True — лист становится видимым.

Аналоги присваиваемых значений:

  • False = xlHidden = xlSheetHidden = 1
  • xlVeryHidden = xlSheetVeryHidden = 2
  • True = xlSheetVisible = -1 (константа xlVisible вызывает ошибку)

Примеры:

Лист1.Visible = xlSheetHidden

Лист2.Visible = 1

Worksheets(Worksheets.Count).Visible = xlVeryHidden

Worksheets(«МойЛист»).Visible = True

Как создать, скопировать, переместить или удалить рабочий лист с помощью кода VBA Excel, смотрите в этой статье.

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

Скрыть все листы, кроме указанного, в Excel с кодом VBA
Скрыть все рабочие листы, кроме активного, с помощью Kutools for Excel (всего несколько кликов)


Скрыть все листы, кроме указанного, в Excel с кодом VBA


Вы можете скрыть все листы, кроме указанного, с кодом VBA в Excel. Пожалуйста, сделайте следующее.

1. В текущей открытой книге перейдите к тому листу, который нужно отображать только, и нажмите другой + F11 одновременно открыть Приложение Microsoft Visual Basic окно.

2. в Приложение Microsoft Visual Basic окна, нажмите Вставить > Модули. Смотрите скриншот:

3. Затем скопируйте и вставьте приведенный ниже код VBA в редактор кода.

Код VBA: скрыть все листы, кроме указанного

Sub SheetHidden()
	Dim xWs As Worksheet
	Dim xName As String
	xName = Application.InputBox("Range", xTitleId, Application.ActiveSheet.Name, Type: = 2)
	For Each xWs In Application.ActiveWorkbook.Worksheets
		If xWs.Name <> xName Then
			xWs.Visible = xlSheetHidden
		End If
	Next
End Sub

4. нажмите F5 ключ для запуска кода.

5. После запуска кода появится диалоговое окно с именем активного листа, отображаемым в Диапазон поле, затем щелкните OK кнопку.

Затем все листы сразу же скрываются, кроме текущего в вашей книге.

Внимание: Для отображения скрытых листов скопируйте и вставьте следующий код VBA в модуль, а затем нажмите клавишу F5, чтобы запустить код.

Код VBA: показать скрытые листы

Sub SheetUnHidden()
	Dim xWs As Worksheet
	For Each xWs In Application.ActiveWorkbook.Worksheets
		xWs.Visible = True
	Next
End Sub

Скрыть все рабочие листы, кроме активного, с помощью Kutools for Excel (всего один клик)

Вы можете скрыть все листы, кроме указанного или активного, одним щелчком мыши в Excel.

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

2. Затем нажмите Кутулс > Показать спрятать > Скрыть невыбранные листы.

Тогда все листы в текущей книге будут скрыты, кроме активного.

Внимание: Если вы хотите отобразить все скрытые рабочие листы, нажмите Кутулс > Показать / Скрыть > Показать все листы. Смотрите скриншот:

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


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

 

Slimka

Пользователь

Сообщений: 22
Регистрация: 09.07.2015

Добрый день, уважаемые разработчики!

Прошу помочь с макросом VBA…
Имеется книга Excel, в которой 7 листов, у последнего имя «MacrosTurningOn».

Задача:
1. При закрытии книги, макрос должен СКРЫВАТЬ (как можно лучше прятать) все листы, кроме последнего — «MacrosTurningOn». А лист «MacrosTurningOn», наоборот, раскрывать.
нарыл в гугле код… Но он требует доработки в части раскрытия листа «MacrosTurningOn»…

Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
Dim wsheet As Worksheet
For Each wsheet In ActiveWorkbook.Sheets
If wsheet.Name <> "MacrosTurningOn" Then wsheet.Visible = xlVeryHidden
Next
Application.ScreenUpdating = True
End Sub 

2. При открытии книги, пользователь видит, соответственно только 1 лист — «MacrosTurningOn», на котором должна быть кнопка, например, «Готов к работе с книгой».
2.1. При нажатии на эту кнопку происходит следующее:
2.1.1. Раскрываются все скрытые листы (№№ 1-6)
2.1.2. Скрывается 7-ой лист «MacrosTurningOn».

При этом у меня в этой же книге имеется макрос, защищающий листы паролем:

Код
Private Sub Workbook_Open()
 Const MyPassword = "***********"
 With Sheets(1)
 .Unprotect Password:=MyPassword
 .EnableOutlining = True
 .Protect Password:=MyPassword, DrawingObjects:=True, Contents:=True, Scenarios:=True, _
 AllowFiltering:=True, UserInterfaceOnly:=True
 End With
 With Sheets(3)
 .Unprotect Password:=MyPassword
 .EnableOutlining = True
 .Protect Password:=MyPassword, DrawingObjects:=True, Contents:=True, Scenarios:=True, _
 AllowFiltering:=True, UserInterfaceOnly:=True
 End With
 With Sheets(4)
 .Unprotect Password:=MyPassword
 .EnableOutlining = True
 .Protect Password:=MyPassword, DrawingObjects:=True, Contents:=True, Scenarios:=True, _
 AllowFiltering:=True, UserInterfaceOnly:=True
 End With
 With Sheets(5)
 .Unprotect Password:=MyPassword
 .EnableOutlining = True
 .Protect Password:=MyPassword, DrawingObjects:=True, Contents:=True, Scenarios:=True, _
 AllowFiltering:=True, UserInterfaceOnly:=True
 End With
 With Sheets(6)
 .Unprotect Password:=MyPassword
 .EnableOutlining = True
 .Protect Password:=MyPassword, DrawingObjects:=True, Contents:=True, Scenarios:=True, _
 AllowFiltering:=True, UserInterfaceOnly:=True
 End With
  End Sub 

Соответственно, нужно сделать:
а) макрос на раскрытие листа «MacrosTurningOn» и скрытие других листов при закрытии книги;
б) макрос на кнопку с вышеописанными функциями (пункт 2.1.)

Заранее благодарен за помощь!

Изменено: Slimka02.09.2015 14:44:06

В статье «Как скрыть /отобразить страницу в Excel» мы рассмотрели как вручную открыть/ скрыть лист книги, все то же самое можно сделать и написав простой VBA макрос:

Sub Макрос1 ()
ActiveWindow.SelectedSheets.Visible = False 'Прячем активный лист
Sheets ("Лист2").Visible = False 'Прячем лист с именем "Лист2", можно аналогично отобразить лист обращаясь к нему по имени, но с параметром 'true'
End Sub

Лист так же можно скрыть и вручную из редактора VBA. Зайдем в редактор (Alt+F11) и кликнув на соответствующий лист, в настройках в параметре Visible  выберем интересующий нас статус видимости листа, в том числе статус «VeryHidden», который позволит убрать лист из списка скрытых листов (список вызывается из самого документа Excel при клике правой кнопкой мыши по названию листа):

Очень скрыт

Лист совсем скрыт

Будем благодарны, если Вы нажмете +1 и/или Мне нравится внизу данной статьи или поделитесь с друзьями с помощью кнопок расположенных ниже.

Понравилась статья? Поделить с друзьями:
  • Скрыть в excel 2013
  • Скрытый шрифт в excel
  • Скрытый текст это в word
  • Скрытые символы форматирования в word их назначение
  • Скрытый символ форматирования в word