Viacrozmerné pole VBA (2D polia)

Tento tutoriál bude diskutovať o 2-d a viacrozmerných poliach vo VBA.

Viacrozmerné pole (2D polia)

Viacrozmerné polia sú polia, ktoré obsahujú viac ako jednu dimenziu, zvyčajne dve alebo tri dimenzie, ale polia môžu mať až 32 dimenzií.

Deklarujte 2D pole

Ak chcete vytvoriť pole s viac ako jednou dimenziou, definujte každú samostatnú dimenziu čiarkami:

1 Dim intArr (2,3) ako celé číslo

Osadzovanie 2D poľa

Nasledujúci kód naplní 2D pole a potom vyplní riadky a stĺpce pracovného hárka hodnotami v poli.

1234567891011121314151617181920212223242526 Sub Populate2D ()'deklarujte 2D poleDim intA (2, 3) ako celé číslo'deklarovať premennéDim rw As IntegerDim col ako celé číslo“naplňte poleintA (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'prechádzajte poľom a naplňte program ExcelPre rw = 0 až 2Pre col = 0 až 3Bunky (rw + 1, col + 1). Hodnota = intA (rw, col)Ďalej plkDalsia rwKoniec pod

Vaša tabuľka programu Excel by sa mala potom vyplniť nasledovne.

Vyplnenie 2D poľa z údajov programu Excel

Nasledujúci kód naplní 2D pole z pracovného hárka programu Excel a potom vyplní iný hárok údajmi.

1234567891011121314151617181920212223242526 Sub Populate2D ()„Vyhláste pracovné listyDim ws_Source As worksheetDim ws_Cieľ ako pracovný list„Vyhláste poleDim wsData (10, 2) ako variant„Vyhláste premennéDim rw ako IntegerDim col ako celé číslo“Pozrite si zdrojový listNastaviť ws_Source = pracovné listy („list1“)'Získajte informácie zo zdrojového listu a naplňte polePre rw = LBound (wsData, 1) Do UBound (wsData, 1)Pre col = LBound (wsData, 2) Do UBound (wsData, 2)wsData (rw, col) = ws_Source.Range ("A2"). Offset (rw, col) .HodnotaĎalej plkDalsia rw“pozri list určeniaNastaviť ws_Destination = pracovné listy („list2“)'vyplňte cieľový hárok z poľaPre rw = LBound (wsData, 1) Do UBound (wsData, 1)Pre col = LBound (wsData, 2) Do UBound (wsData, 2)ws_Destination.Range ("A1"). Ofset (rw, col) .Value = wsData (rw, col)Ďalej plkDalsia rwKoniec pod

Zmena veľkosti pomocou ReDim a Re-Dim Preserve

Veľkosť poľa môžete zmeniť pomocou ReDim.

1234567891011121314151617 Podrozmer2D ()'deklarujte poleDim varArray () ako variant'deklarujte veľkosť poľaReDim varArray (1, 2)varArray (0, 0) = "Mel Smith"varArray (0, 1) = "Fred Buckle"varArray (0, 2) = "Jane Eyre"varArray (1, 0) = "Účtovník"varArray (1, 1) = "tajomník"varArray (1, 2) = "Doktor"'znova deklarovať veľkosť poľaReDim varArray (0, 1)'repopulate the arrayvarArray (0, 0) = "Mel Smith"varArray (0, 1) = "Fred Buckle"Koniec pod

Keď znova deklarujete pole, prídete o všetky údaje, ktoré v ňom boli predtým uložené, pokiaľ nepoužijete príponu Vyhlásenie o zachovaní spoločnosti ReDim.

12345678910111213141516 Podrozmer2D ()'deklarujte pole Dim varArray () ako variant'deklarujte veľkosť poľaReDim varArray (1, 2)varArray (0, 0) = "Mel Smith"varArray (0, 1) = "Fred Buckle"varArray (0, 2) = "Jane Eyre"varArray (1, 0) = "Účtovník"varArray (1, 1) = "tajomník"varArray (1, 2) = "Doktor"'znova deklarovať veľkosť poľaReDim Preverve varArray (1, 3)'naplňte pole ďalšími hodnotamivarArray (0, 3) = "Rob Barnes"varArray (1, 3) = "Inštalatér"Koniec pod

Veľkosť posledného rozmeru poľa môžete zmeniť iba vtedy, ak v ňom chcete zachovať pôvodné údaje Re-Dim Preserve.

Keď kliknete na ladenie, zvýrazní sa chyba, ktorá ukazuje, že prvá dimenzia v poli nie je rovnaká ako prvá dimenzia, keď bola pôvodne deklarovaná veľkosť poľa.

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave