Jak przeglądać arkusze kalkulacyjne w vba (z przykładami)


Do poruszania się po arkuszach skoroszytu programu Excel przy użyciu języka VBA można używać następujących metod:

Metoda 1: Przejrzyj wszystkie arkusze kalkulacyjne

 SubLoopSheets ()

Dim ws As Worksheet

For Each ws In ThisWorkbook.Worksheets

    ws.Range("A1").Value = 100

Next ws

End Sub

To konkretne makro przegląda każdy arkusz skoroszytu i ustawia wartość w komórce A1 każdego arkusza na 100.

Metoda 2: Przeglądaj wszystkie arkusze z wyłączeniem określonych

 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

To konkretne makro przegląda każdy arkusz skoroszytu i ustawia wartość w komórce A1 każdego arkusza na 100, z wyjątkiem arkuszy o nazwach Arkusz2 i Arkusz3 .

Poniższe przykłady pokazują, jak w praktyce zastosować każdą z tych metod w skoroszycie programu Excel zawierającym cztery puste arkusze:

Przykład 1: Przeglądaj wszystkie arkusze

Możemy użyć następującego makra, aby ustawić wartość komórki A1 w każdym arkuszu w naszym skoroszycie na równą 100:

 SubLoopSheets ()

Dim ws As Worksheet

For Each ws In ThisWorkbook.Worksheets

    ws.Range("A1").Value = 100

Next ws

Kiedy uruchomimy to makro, wartość komórki A1 w każdym arkuszu skoroszytu będzie równa 100:

Przykład 2: Przeglądaj wszystkie arkusze z wyłączeniem określonych

Załóżmy, że chcemy przejrzeć każdy arkusz i ustawić wartość komórki A1 w każdym arkuszu na 100, z wyjątkiem arkuszy o nazwach Arkusz2 i Arkusz3 .

W tym celu możemy utworzyć następujące makro:

 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

Kiedy uruchomimy to makro, zobaczymy, że Arkusz1 i Arkusz4 mają wartość 100 w komórce A1 .

Jednak Arkusz2 i Arkusz3 nie będą miały żadnej wartości w komórce A1 , ponieważ użyliśmy funkcji Case , aby zignorować te arkusze:

Zauważ, że w tych przykładach przejrzeliśmy każdy arkusz i dla uproszczenia ustawiliśmy wartość komórki równą określonej wartości.

Jeśli jednak chcesz, możesz użyć podobnej składni z instrukcją For Each , aby wykonać znacznie bardziej skomplikowane zadania w każdym arkuszu.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:

VBA: Jak policzyć liczbę wierszy w zakresie
VBA: Jak liczyć komórki zawierające określony tekst
VBA: Jak pisać funkcje COUNTIFS i COUNTIFS

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *