VBA multidimensionale array (2D-arrays)

In deze zelfstudie worden 2-d en multidimensionale arrays in VBA besproken.

Multidimensionale array (2D-arrays)

Multidimensionale arrays zijn arrays die meer dan één dimensie bevatten, meestal twee of drie dimensies, maar arrays kunnen maximaal 32 dimensies hebben.

Een 2D-array declareren

Als u een array met meer dan één dimensie wilt maken, gebruikt u komma's om elke afzonderlijke dimensie te definiëren:

1 Dim intArr(2,3) als geheel getal

Een 2D-array vullen

De onderstaande code vult een 2D-array en vult vervolgens de rijen en kolommen van een werkblad met de waarden in de array.

1234567891011121314151617181920212223242526 Subpopuleren2D()'declareer de 2D-array'Dim intA(2, 3) als geheel getal'variabelen declareren'Dim rw als geheel getalDim col als geheel getal'vul de array'intA(0, 0) = 45intA(0, 1) = 50intA(0, 2) = 55intA(0, 3) = 60intA(1, 0) = 65intA(1, 1) = 70intA(1, 2) = 75intA(1, 3) = 80intA(2, 0) = 85intA(2, 1) = 90intA(2, 2) = 95intA(2, 3) = 100'loop door de array en vul Excel in'Voor rw = 0 tot 2Voor col = 0 tot 3Cellen (rw + 1, col + 1). Waarde = intA (rw, col)volgende kleurVolgende rwEinde sub

Uw Excel-spreadsheet moet dan als volgt worden ingevuld.

Een 2D-array vullen vanuit Excel-gegevens

De onderstaande code vult een 2D-array uit een Excel-werkblad en vult vervolgens een ander blad met de gegevens.

1234567891011121314151617181920212223242526 Subpopuleren2D()'Declareer de werkbladen'Dim ws_Bron als werkbladDim ws_Destination als werkblad'Declareer de array'Dim wsData(10, 2) Als variant'Declareer de variabelen'Dim rw als geheel getalDim col als geheel getal'verwijs naar het bronblad'Stel ws_Source = Werkbladen ("Blad1") in'haal de informatie uit het bronblad en vul de array'Voor rw = LBound(wsData, 1) Naar UBound(wsData, 1)Voor col = LBound(wsData, 2) Naar UBound(wsData, 2)wsData(rw, col) = ws_Source.Range("A2").Offset(rw, col).Waardevolgende kleurVolgende rw'raadpleeg het bestemmingsblad'Stel ws_Destination = Werkbladen ("Blad2") in' vul het bestemmingsblad uit de array inVoor rw = LBound(wsData, 1) Naar UBound(wsData, 1)Voor col = LBound(wsData, 2) Naar UBound(wsData, 2)ws_Destination.Range("A1").Offset(rw,col).Waarde = wsData(rw,col)volgende kleurVolgende rwEinde sub

Formaat wijzigen met ReDim en Re-Dim Preserve

U kunt de grootte van een array wijzigen met ReDim.

1234567891011121314151617 Subgrootte wijzigen2D()'declareer de array'Dim varArray() als variant'declareer de grootte van de array'ReDim varArray(1, 2)varArray(0, 0) = "Mel Smith"varArray(0, 1) = "Fred Buckle"varArray(0, 2) = "Jane Eyre"varArray(1, 0) = "Accountant"varArray(1, 1) = "Secretaris"varArray(1, 2) = "Dokter"'de grootte van de array opnieuw declareren'ReDim varArray(0, 1)'vul de array opnieuw in'varArray(0, 0) = "Mel Smith"varArray(0, 1) = "Fred Buckle"Einde sub

Wanneer u de array opnieuw declareert, verliest u alle gegevens die eerder in de array waren opgeslagen, tenzij u de . gebruikt ReDim Preserve-verklaring.

12345678910111213141516 Subgrootte wijzigen2D()'declareer de array Dim varArray() als Variant'declareer de grootte van de array'ReDim varArray(1, 2)varArray(0, 0) = "Mel Smith"varArray(0, 1) = "Fred Buckle"varArray(0, 2) = "Jane Eyre"varArray(1, 0) = "Accountant"varArray(1, 1) = "Secretaris"varArray(1, 2) = "Dokter"'de grootte van de array opnieuw declareren'ReDim Preverve varArray(1, 3)'vul de array met extra waarden'varArray(0, 3) = "Rob Barnes"varArray(1, 3) = "Loodgieter"Einde sub

U kunt de grootte van de laatste dimensie van een array alleen wijzigen als u de originele gegevens in de array wilt behouden met Behoud opnieuw dimmen.

Wanneer u op foutopsporing klikt, wordt de fout gemarkeerd, wat aangeeft dat de eerste dimensie in de array niet hetzelfde is als de eerste dimensie toen de arraygrootte oorspronkelijk werd gedeclareerd.

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

wave wave wave wave wave