Як переглядати електронні таблиці у vba (з прикладами)
Для навігації аркушами в книзі Excel за допомогою VBA можна використовувати такі методи:
Спосіб 1. Перегляньте всі електронні таблиці
SubLoopSheets ()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Range("A1").Value = 100
Next ws
End Sub
Цей конкретний макрос переглядає кожен аркуш у робочій книзі та встановлює значення 100 у клітинці A1 кожного аркуша.
Спосіб 2. Перегляньте всі аркуші, за винятком окремих
SubLoopSheets ()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case Is = "Sheet2", "Sheet3"
'Do not execute any code for these sheets
Case Else
ws.Range("A1").Value = 100
End Select
Next ws
End Sub
Цей конкретний макрос циклічно переглядає кожен аркуш у робочій книзі та встановлює значення в комірці A1 кожного аркуша рівним 100, за винятком аркушів під назвою Аркуш2 і Аркуш3 .
У наведених нижче прикладах показано, як використовувати кожен із цих методів на практиці з робочою книгою Excel, яка містить чотири порожні аркуші:
Приклад 1: перегляд усіх аркушів
Ми можемо використати наступний макрос, щоб встановити значення комірки A1 на кожному аркуші нашої робочої книги рівним 100:
SubLoopSheets ()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Range("A1").Value = 100
Next ws
Коли ми запускаємо цей макрос, значення комірки A1 на кожному аркуші робочої книги дорівнюватиме 100:
Приклад 2. Перегляньте всі аркуші, за винятком окремих
Припустімо, ми хочемо переглянути кожен аркуш і встановити значення комірки A1 на кожному аркуші рівним 100, за винятком аркушів під назвою Аркуш2 і Аркуш3 .
Для цього ми можемо створити такий макрос:
SubLoopSheets ()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case Is = "Sheet2", "Sheet3"
'Do not execute any code for these sheets
Case Else
ws.Range("A1").Value = 100
End Select
Next ws
End Sub
Коли ми запускаємо цей макрос, ми побачимо, що Sheet1 і Sheet4 мають значення 100 у клітинці A1 .
Однак аркуші Sheet2 і Sheet3 не матимуть значення в клітинці A1 , оскільки ми використовували функцію Case , щоб ігнорувати ці аркуші:
Зауважте, що в цих прикладах ми переглянули кожен робочий аркуш і встановили значення комірки, що дорівнює певному значенню, лише для простоти.
Однак ви можете використовувати подібний синтаксис із оператором For Every для виконання значно складніших завдань на кожному аркуші, якщо хочете.
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання у VBA:
VBA: як підрахувати кількість рядків у діапазоні
VBA: як підрахувати клітинки з певним текстом
VBA: як написати функції COUNTIF і COUNTIFS