Іноді ви можете видалити всі, крім активного аркуша, у книзі Excel. У цих ситуаціях можна використовувати наступний макрос.
Як працює макрос
Макрос тут перебирає аркуші, узгоджуючи назву кожного аркуша з назвою активного аркуша. Кожен раз, коли макрос зациклюється, він видаляє будь-який невідповідний аркуш. Зверніть увагу на використання властивості DisplayAlerts на кроці 4. Це фактично вимикає попередження Excel, тому вам не потрібно підтверджувати кожне видалення.
Підмакрос1()
'Крок 1: Оголошення змінних
Dim ws As Worksheet
«Крок 2: Почніть перебирати всі аркуші
Для кожного ws In ThisWorkbook.Worksheets
«Крок 3. Перевірте назву кожного аркуша
Якщо ws.Name <> ThisWorkbook.ActiveSheet.Name Then
«Крок 4: Вимкніть попередження та видаліть
Application.DisplayAlerts = False
ws.Видалити
Application.DisplayAlerts = True
Кінець Якщо
«Крок 5: Перейдіть до наступного аркуша
Далі ws
Кінець суб
Макрос спочатку оголошує об’єкт під назвою ws. На цьому етапі створюється контейнер пам’яті для кожного робочого аркуша, який він перебирає.
На кроці 2 макрос починає зациклюватися, повідомляючи Excel, що він оцінить всі аркуші в цій книзі. Існує різниця між ThisWorkbook і ActiveWorkbook. Об’єкт ThisWorkBook посилається на книгу, яка містить код. Об’єкт ActiveWorkBook посилається на поточну активну книгу. Вони часто повертають один і той же об’єкт, але якщо книга, на якій виконується код, не є активною книгою, вони повертають різні об’єкти. У цьому випадку ви не хочете ризикувати видалити аркуші в інших книгах, тому ви використовуєте ThisWorkBook.
На кроці 3 макрос просто порівнює ім’я активного аркуша з аркушем, який зараз зациклюється.
На кроці 4, якщо назви аркушів відрізняються, макрос видаляє аркуш. Як згадувалося, ви використовуєте DisplayAlerts, щоб придушити будь-які перевірки підтвердження з Excel. Якщо ви хочете отримати попередження перед видаленням аркушів, ви можете опустити Application. Display Alerts = False. Якщо пропустити оператор DisplayAlerts, ви отримаєте відображене повідомлення, що дозволить вам відмовитися від рішення про видалення робочих аркушів.
На кроці 5 макрос повертається назад, щоб отримати наступний аркуш. Після того, як усі аркуші оцінені, макрос завершується.
Щоб побачити попереджувальні повідомлення, пропустіть оператор DisplayAlerts.
Як використовувати макрос
Щоб реалізувати цей макрос, ви можете скопіювати та вставити його в стандартний модуль:
Активуйте редактор Visual Basic, натиснувши Alt+F11.
Клацніть правою кнопкою миші назву проекту/книги у вікні проекту.
Виберіть «Вставка»→ «Модуль».
Введіть або вставте код у щойно створений модуль.
Якщо ви використовуєте ThisWorkbook замість ActiveWorkbook у макросі, ви не можете запустити макрос з особистої робочої книги макросів. Чому? Оскільки ThisWorkbook посилатиметься на особисту книгу макросів, а не на робочу книгу, до якої має застосовуватися макрос.