VBA-array van objecten

Inhoudsopgave

Deze zelfstudie laat zien hoe u arrays van objecten in VBA kunt maken en gebruiken.

In VBA zijn arrays variabelen die meerdere waarden opslaan. U kunt VBA-objecten op dezelfde manier in arrays opslaan als andere gegevens.

De objectmatrix declareren

In dit voorbeeld declareren we een reeks VBA-werkbladen:

1 Dim arWks(3) als werkblad

Een statisch objectarray vullen

Verklaar de objectarray als statisch en dan kunt u de array vullen met de bladen die u in uw werkmap selecteert.

12345678 SubtestObjArray()'definieer de array als een werkbladarray'Dim arWks (1 tot 3) als werkblad'voeg 3 bladen toe aan de array'set arWks(1) = Bladen(1)set arWks(2) = Bladen(2)Set arWks(3) = Bladen(3)Einde sub

Een dynamische objectmatrix vullen

U kunt de objectarray als dynamisch declareren en vervolgens de bladen in de werkmap tellen voordat u de arraygrootte aan de objectarray toewijst.

1234567891011121314 SubtestObjArray()'definieer de array als een werkbladarray'Dim arWks() als werkblad'tel hoeveel werkbladen in het bestand en dim de array opnieuw'Dim n als geheel getalDim ik als geheel getal'tel de vellen en min één om de grenzen voor de array in te stellen'n = Application.Sheets.Count - 1ReDim arWks(n)'vul de werkbladarray met alle bladen in de werkmap'Voor i = LBound(arWks) naar UBound(arWks)Stel arWks(i) = ActiveWorkbook.Sheets(i + 1) involgende iEinde sub

In het bovenstaande voorbeeld declareren we eerst de Worksheet Array. We tellen dan het aantal vellen in de werkmap en kennen die waarde min één toe aan de UBound van de array. Dit komt door het feit dat de LBound van de array begint als 0. Ten slotte doorlopen we de bladen en voegen we elk blad toe aan de array.

De objectarray gebruiken in VBA-code

Nadat we de werkbladarray hebben gevuld, kunnen we VBA gebruiken om door de array te bladeren.

123456789101112131415161718 SubtestObjArray()'definieer de array als een werkbladarray'Dim arWks() als werkblad'tel hoeveel werkbladen in het bestand en dim de array opnieuw'Dim n als geheel getalDim ik als geheel getal'tel de vellen en min één om de grenzen voor de array in te stellen'n = Application.Sheets.Count - 1ReDim arWks(n)'vul de werkbladarray met alle bladen in de werkmap'Voor i = LBound(arWks) naar UBound(arWks)Stel arWks(i) = ActiveWorkbook.Sheets(i + 1) involgende i'doe iets aan elk blad in de array'Voor i = LBound(arWks) naar UBound(arWks)arWks(i).Bereik("A1:H1").Lettertype.Bold = Truevolgende iEinde sub

In het bovenstaande voorbeeld doorlopen we de array en maken we de eerste rij van elk blad in de array vet.

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave