Ten samouczek pokaże, jak tworzyć i używać tablic obiektów w VBA.
W języku VBA tablice są zmiennymi przechowującymi wiele wartości. Obiekty VBA można przechowywać w tablicach w taki sam sposób, jak inne dane.
Deklarowanie tablicy obiektów
W tym przykładzie zadeklarujemy tablicę arkuszy VBA:
1 | Dim arWks(3) jako arkusz roboczy |
Wypełnianie tablicy obiektów statycznych
Zadeklaruj, że tablica obiektów jest statyczna, a następnie możesz wypełnić tablicę arkuszami wybranymi ze skoroszytu.
12345678 | SubTestObjArray()'zdefiniuj tablicę jako tablicę arkuszaDim arWks(1 do 3) jako arkusz roboczy'dodaj 3 arkusze do tablicyustaw arWks(1) = Arkusze(1)ustaw arWks(2) = Arkusze(2)Ustaw arWks(3) = Arkusze(3)Napis końcowy |
Wypełnianie tablicy obiektów dynamicznych
Możesz zadeklarować, że tablica obiektów jest dynamiczna, a następnie policzyć arkusze w skoroszycie przed przypisaniem rozmiaru tablicy do tablicy obiektów.
1234567891011121314 | SubTestObjArray()'zdefiniuj tablicę jako tablicę arkuszaDim arWks() jako arkusz roboczy'policz ile arkuszy roboczych w pliku i ponownie przyciemnij tablicęDim n jako liczba całkowitaDim i jako liczba całkowita'policz arkusze i minus jeden, aby ustawić granice tablicyn = Aplikacja.Arkuszy.Liczba - 1ReDim arWks(n)'wypełnij tablicę arkusza roboczego wszystkimi arkuszami w skoroszycieFor i = LBound(arWks) do UBound(arWks)Ustaw arWks(i) = ActiveWorkbook.Arkusze(i + 1)Dalej jaNapis końcowy |
W powyższym przykładzie najpierw deklarujemy tablicę arkusza roboczego. Następnie liczymy liczbę arkuszy w skoroszycie i przypisujemy tę wartość minus jeden do UBound tablicy. Wynika to z faktu, że LBound tablicy zaczyna się od 0. Na koniec przechodzimy przez arkusze i dodajemy każdy arkusz do tablicy.
Używanie tablicy obiektów w kodzie VBA
Po wypełnieniu tablicy Worksheet możemy użyć VBA, aby przejść przez tablicę.
123456789101112131415161718 | SubTestObjArray()'zdefiniuj tablicę jako tablicę arkuszaDim arWks() jako arkusz roboczy'policz ile arkuszy roboczych w pliku i ponownie przyciemnij tablicęDim n jako liczba całkowitaDim i jako liczba całkowita'policz arkusze i minus jeden, aby ustawić granice tablicyn = Aplikacja.Arkuszy.Liczba - 1ReDim arWks(n)'wypełnij tablicę arkusza roboczego wszystkimi arkuszami w skoroszycieFor i = LBound(arWks) do UBound(arWks)Ustaw arWks(i) = ActiveWorkbook.Arkusze(i + 1)Dalej ja'zrób coś z każdym arkuszem w tablicyFor i = LBound(arWks) do UBound(arWks)arWks(i).Range("A1:H1").Czcionka.Pogrubienie = PrawdaDalej jaNapis końcowy |
W powyższym przykładzie wykonujemy pętlę przez tablicę i pogrubiamy pierwszy wiersz każdego arkusza w tablicy.