Tento tutoriál vám ukáže, ako vytvárať a používať polia objektov vo VBA.
Vo VBA sú polia premenné, ktoré ukladajú viac hodnôt. Objekty VBA môžete ukladať do polí rovnakým spôsobom, ako by ste ukladali akékoľvek iné údaje.
Vyhlásenie poľa objektov
V tomto prípade deklarujeme pole pracovných hárkov VBA:
1 | Dim arWks (3) As worksheet |
Naplnenie poľa statických objektov
Deklarujte, že pole objektov je statické, a potom môžete pole naplniť listami, ktoré vyberiete zo zošita.
12345678 | Sub TestObjArray ()'definujte pole ako pole pracovného hárkaDim arWks (1 to 3) As worksheet'pridajte do poľa 3 listyset arWks (1) = Sheets (1)set arWks (2) = Sheets (2)Nastaviť šípky (3) = listy (3)Koniec pod |
Naplnenie dynamického poľa objektov
Pole objektov môžete vyhlásiť za dynamické a potom počítať listy v zošite pred priradením veľkosti poľa k poľu objektov.
1234567891011121314 | Sub TestObjArray ()'definujte pole ako pole pracovného hárkaDim arWks () ako pracovný list'spočítajte, koľko pracovných hárkov je v súbore, a znova stmavte poleDim n ako celé čísloDim i As Integer'spočítajte listy a mínus jeden, aby ste nastavili hranice pre polen = Application.Sheets.Count - 1Klávesy ReDim (n)'vyplňte pole pracovného hárka všetkými listami v zošitePre i = LBound (arWks) až UBound (arWks)Nastaviť arWks (i) = ActiveWorkbook. Tabuľky (i + 1)Ďalej iKoniec pod |
Vo vyššie uvedenom príklade najskôr deklarujeme pole pracovného hárka. Potom spočítame počet listov v zošite a priradíme túto hodnotu mínus jednu k UBound of the Array. Je to spôsobené tým, že LBound of the Array začína ako 0. Nakoniec prevlečieme listy a každý list pridáme do poľa.
Použitie poľa objektov v kóde VBA
Potom, čo sme naplnili pole pracovného hárka, môžeme použiť VBA na prechod v poli.
123456789101112131415161718 | Sub TestObjArray ()'definujte pole ako pole pracovného hárkaDim arWks () ako pracovný list'spočítajte, koľko pracovných hárkov je v súbore, a znova stmavte poleDim n ako celé čísloDim i As Integer'spočítajte listy a mínus jeden, aby ste nastavili hranice pre polen = Application.Sheets.Count - 1Klávesy ReDim (n)'vyplňte pole pracovného hárka všetkými listami v zošitePre i = LBound (arWks) až UBound (arWks)Nastaviť arWks (i) = ActiveWorkbook. Tabuľky (i + 1)Ďalej i'urobte niečo s každým listom v poliPre i = LBound (arWks) až UBound (arWks)arWks (i). Range ("A1: H1"). Font.Bold = TrueĎalej iKoniec pod |
Vo vyššie uvedenom príklade prechádzame poľom a tučný prvý riadok každého listu v poli.