Често в Ексел се налага да скриваме (Hide Sheets) или съответно разкриваме (Un hide Sheets) много шийтове наведнъж.
Скриването е лесно. Да речем, че на долната картинка искаме да скрием шийтовете, оцветени в жълто.
За целта първо ги маркираме (най-лесно става като задържаме клавиша CTRL и кликаме с мишката върху всеки от тях).
А след това избираме Десен бутон -> Hide
И готово – жълтите шийтове вече са скрити.
Странно, но обратното действие – да ги покажем (Unhide) всичките наведнъж не е толкова лесно. Необходимо е да дадем десен бутон на някой шийт, без значение кой. В появилото се меню избираме Unhide
Появява се списък с всички скрити шийтове. Sheet3 е оцветен в синя лента. Това означава, че когато дадем ОК, точно този шийт ще бъде показан.
Ако искаме някой друг, например Sheet7, просто трябва да кликнем върху него.
За съжаление, незнайно защо, тук номерът с CTRL не работи. Можем да избираме и показваме само по един шийт. Това разбира се е крайно неудобно, но има един начин как да покажем всички скрити шийтове едновременно. Процедурата е следната:
- НатискамеALT + F11, за да извикаме прозореца на VBA редактора
2. НатискамеCTRL+G, с което извикваме прозореца Immediate
3. Въвеждаме следния код:For Each SH In Sheets: SH.Visible = True: Next
4. Натискаме Enter
С това всички скрити шийтове ще се покажат.
Малко разяснения какво се случва:
Immediate прозорецът е специален режим на VBA, при който написаните команди се изпълняват в мига, в който натиснем Enter. Най-често се използва при намиране грешки в код или когато искаме да се изпълни някаква команда без да пишем макрос (както е в този случай). Повече информация за този специален прозорец във VBA и как може да ви бъде полезен може да намерите тук или тук.
А какво казва кодът?
For each SH in Sheets => За всеки обект от групата на работните листове.
SH.Visible = True => Да е вярно, че е видим
Next => След като е изпълнено за първия скрит шийт да премине на следващия
В случая SH е синоним на „който и да е шийт“. Можете преспокойно да използвате какъвто и да е друг стринг. Дори и така.