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