Як переглядати електронні таблиці у 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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *