Tento tutoriál předvede, jak vytvářet a používat pole objektů ve VBA.
Ve VBA jsou pole proměnné, které ukládají více hodnot. Objekty VBA můžete ukládat do polí stejným způsobem, jako byste ukládali jakákoli jiná data.
Deklarace pole objektů
V tomto příkladu deklarujeme řadu listů VBA:
1 | Dim arWks (3) As worksheet |
Naplnění pole statických objektů
Deklarujte pole objektů jako statické a poté můžete pole naplnit listy, které vyberete ze sešitu.
12345678 | Dílčí testObjArray ()'definujte pole jako pole listuDim arWks (1 až 3) jako pracovní list'přidejte do pole 3 listyset arWks (1) = Sheets (1)set arWks (2) = Sheets (2)Nastavit arWks (3) = Listy (3)End Sub |
Naplnění dynamického pole objektů
Pole objektů můžete deklarovat jako dynamické a poté před přiřazením velikosti pole k objektu pole spočítat listy v sešitu.
1234567891011121314 | Dílčí testObjArray ()'definujte pole jako pole listuDim arWks () jako pracovní list'spočítejte, kolik listů v souboru je, a znovu stmívejte poleDim n jako celé čísloDim i As Integer'spočítejte listy a mínus jeden, abyste nastavili hranice polen = Application.Sheets.Count - 1ARDY ReDim (n)'vyplňte pole listu všemi listy v sešitu.'Pro i = LBound (arWks) až UBound (arWks)Nastavit arWks (i) = ActiveWorkbook.Sheets (i + 1)Příště jáEnd Sub |
Ve výše uvedeném příkladu nejprve deklarujeme pole listu. Potom sečteme počet listů v sešitu a přiřadíme tuto hodnotu mínus jeden UBound pole. To je způsobeno skutečností, že LBound of the Array začíná jako 0. Nakonec smyčku prolistujeme a každý list přidáme do pole.
Použití pole objektů v kódu VBA
Jakmile naplníme pole listu, můžeme použít VBA k procházení pole.
123456789101112131415161718 | Dílčí testObjArray ()'definujte pole jako pole listuDim arWks () jako pracovní list'spočítejte, kolik listů v souboru je, a znovu stmívejte poleDim n jako celé čísloDim i As Integer'spočítejte listy a mínus jeden, abyste nastavili hranice polen = Application.Sheets.Count - 1ARDY ReDim (n)'vyplňte pole listu všemi listy v sešitu.'Pro i = LBound (arWks) až UBound (arWks)Nastavit arWks (i) = ActiveWorkbook.Sheets (i + 1)Příště já„udělejte něco s každým listem v poliPro i = LBound (arWks) až UBound (arWks)arWks (i) .Range ("A1: H1"). Font.Bold = TruePříště jáEnd Sub |
Ve výše uvedeném příkladu smyčku procházíme a tučně označíme první řádek každého listu v poli.