VBA Array of Objects

Innehållsförteckning

Denna handledning visar hur du skapar och använder matriser av objekt i VBA.

I VBA är matriser variabler som lagrar flera värden. Du kan lagra VBA -objekt i matriser på samma sätt som du skulle lagra annan data.

Förklarar objektmatrisen

I det här exemplet kommer vi att deklarera en rad VBA -kalkylblad:

1 Dim arWks (3) Som arbetsblad

Befolkning av en statisk objektmatris

Förklara att objektmatrisen är statisk och sedan kan du fylla i matrisen med de ark du väljer från din arbetsbok.

12345678 Sub TestObjArray ()'definiera matrisen som ett kalkylbladDim arWks (1 till 3) som arbetsblad'lägg till 3 ark i matrisenset arWks (1) = Ark (1)set arWks (2) = Sheets (2)Ställ in arWks (3) = Sheets (3)Avsluta Sub

Befolkning av en dynamisk objektmatris

Du kan förklara att objektmatrisen är dynamisk och sedan räkna arken i arbetsboken innan du tilldelar matrisstorleken till objektmatrisen.

1234567891011121314 Sub TestObjArray ()'definiera matrisen som ett kalkylbladDim arWks () som arbetsblad'räkna hur många kalkylblad i filen och dimma om arrayenDim n Som heltalDim i As Integer'räkna arken och minus ett för att ställa in gränserna för matrisenn = Application.Sheets.Count - 1ReDim arWks (n)'fyll i kalkylbladet med alla blad i arbetsbokenFör i = LBound (arWks) till UBound (arWks)Ange arWks (i) = ActiveWorkbook.Sheets (i + 1)Nästa iAvsluta Sub

I exemplet ovan deklarerar vi först arbetsbladsmatrisen. Vi räknar sedan antalet ark i arbetsboken och tilldelar det värdet minus ett till matrisens UBound. Detta beror på att LBound för matrisen börjar som 0. Slutligen går vi igenom arken och lägger till varje ark i matrisen.

Använda objektmatrisen i VBA -kod

När vi har fyllt i kalkylbladsmatrisen kan vi använda VBA för att gå igenom matrisen.

123456789101112131415161718 Sub TestObjArray ()'definiera matrisen som ett kalkylbladDim arWks () som arbetsblad'räkna hur många kalkylblad i filen och dimma om arrayenDim n Som heltalDim i As Integer'räkna arken och minus ett för att ställa in gränserna för matrisenn = Application.Sheets.Count - 1ReDim arWks (n)'fyll i kalkylbladet med alla blad i arbetsbokenFör i = LBound (arWks) till UBound (arWks)Ange arWks (i) = ActiveWorkbook.Sheets (i + 1)Nästa i'gör något för varje ark i gruppenFör i = LBound (arWks) till UBound (arWks)arWks (i) .Range ("A1: H1"). Font.Bold = TrueNästa iAvsluta Sub

I exemplet ovan går vi igenom matrisen och fet den första raden i varje ark i matrisen.

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave