VBA Array of Objects

Innholdsfortegnelse

Denne opplæringen vil demonstrere hvordan du oppretter og bruker matriser av objekter i VBA.

I VBA er matriser variabler som lagrer flere verdier. Du kan lagre VBA -objekter i matriser på samme måte som du vil lagre andre data.

Deklarere objektsamlingen

I dette eksemplet vil vi deklarere en rekke VBA -regneark:

1 Dim arWks (3) Som regneark

Befolkning av et statisk objektarray

Erklær objektgruppen som statisk, og deretter kan du fylle ut matrisen med arkene du velger fra arbeidsboken.

12345678 Sub TestObjArray ()'definere matrisen som et regnearkarrayDim arWks (1 til 3) Som regneark'legg til 3 ark i matrisensett arWks (1) = Ark (1)sett arWks (2) = Ark (2)Sett arWks (3) = Ark (3)Slutt Sub

Befolkning av et dynamisk objektarray

Du kan erklære Object Array for å være dynamisk, og deretter telle arkene i arbeidsboken før du tildeler array -størrelsen til Object Array.

1234567891011121314 Sub TestObjArray ()'definere matrisen som et regnearkarrayDim arWks () Som regneark'teller hvor mange regneark i filen, og dimmer matrisen på nyttDim n Som heltallDim i As Integer'teller arkene og minus ett for å angi grensene for matrisenn = Application.Sheets.Count - 1ReDim arWks (n)'fyll ut regnearket med alle arkene i arbeidsbokenFor i = LBound (arWks) til UBound (arWks)Sett arWks (i) = ActiveWorkbook.Sheets (i + 1)Neste jegSlutt Sub

I eksemplet ovenfor erklærer vi først regnearket. Vi teller deretter antall ark i arbeidsboken, og tildeler den verdien minus en til UBound of the Array. Dette skyldes det faktum at LBound for matrisen starter som 0. Til slutt går vi gjennom arkene og legger hvert ark til matrisen.

Bruke Object Array i VBA -kode

Når vi har fylt ut regnearket, kan vi bruke VBA til å gå gjennom matrisen.

123456789101112131415161718 Sub TestObjArray ()'definere matrisen som et regnearkarrayDim arWks () Som regneark'teller hvor mange regneark i filen, og dimmer matrisen på nyttDim n Som heltallDim i As Integer'teller arkene og minus ett for å angi grensene for matrisenn = Application.Sheets.Count - 1ReDim arWks (n)'fyll ut regnearket med alle arkene i arbeidsbokenFor i = LBound (arWks) til UBound (arWks)Sett arWks (i) = ActiveWorkbook.Sheets (i + 1)Neste jeg'Gjør noe med hvert ark i serienFor i = LBound (arWks) til UBound (arWks)arWks (i) .Range ("A1: H1"). Font.Bold = TrueNeste jegSlutt Sub

I eksemplet ovenfor går vi gjennom matrisen og fet den første raden i hvert ark i matrisen.

wave wave wave wave wave