Ovaj vodič će raspravljati o 2-d i višedimenzionalnim nizovima u VBA-i.
Višedimenzionalni niz (2D nizovi)
Višedimenzionalni nizovi su nizovi koji sadrže više dimenzija, obično dvije ili tri dimenzije, ali nizovi mogu imati do 32 dimenzije.
Deklarirajte 2D niz
Da biste izradili niz s više dimenzija, zarezima definirajte svaku zasebnu dimenziju:
1 | Zatamnite intArr (2,3) kao cijeli broj |
Popunjavanje 2D niza
Donji kôd popunit će 2D niz, a zatim će u retke i stupce radnog lista unijeti vrijednosti u nizu.
1234567891011121314151617181920212223242526 | Potpopulacija2D ()'deklarirajte 2D nizDim intA (2, 3) Kao cijeli broj'deklarirati varijableDim rw kao cijeli brojDim col Kao cijeli broj'popunite nizintA (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'prođite kroz niz i popunite ExcelZa rw = 0 do 2Za col = 0 do 3Stanice (rw + 1, col + 1). Vrijednost = intA (rw, col)Sljedeći colSljedeći rwKraj podm |
Vaša Excel proračunska tablica tada bi trebala biti popunjena na sljedeći način.
Popunjavanje 2D niza iz Excel podataka
Donji kôd popunit će 2D niz s radnog lista programa Excel, a zatim će podatke unijeti u drugi list.
1234567891011121314151617181920212223242526 | Potpopulacija2D ()'Proglasite radne listoveZatamnite ws_Source kao radni listZatamni ws_Destination kao radni list'Deklarirajte nizZatamni wsData (10, 2) kao varijantu'Deklarirajte varijableZatamnite rw kao cijeli brojDim col Kao cijeli broj'pogledajte izvorni listPostavi ws_Source = Radni listovi ("List 1")'dobiti informacije s izvornog lista i popuniti nizZa rw = LBound (wsData, 1) Za UBound (wsData, 1)Za col = LBound (wsData, 2) Za UBound (wsData, 2)wsData (rw, col) = ws_Source.Range ("A2"). Pomak (rw, col) .VrijednostSljedeći colSljedeći rw'pogledajte destacijski listPostavi ws_Destination = Radni listovi ("List 2")'popunite odredišni list iz nizaZa rw = LBound (wsData, 1) Za UBound (wsData, 1)Za col = LBound (wsData, 2) Za UBound (wsData, 2)ws_Destination.Range ("A1"). Odstupanje (rw, col) .Vrijednost = wsData (rw, col)Sljedeći colSljedeći rwKraj podm |
Promjena veličine pomoću ReDim-a i Re-Dim Preserve-a
Možete promijeniti veličinu polja pomoću ReDim.
1234567891011121314151617 | Sub Resize2D ()'deklarirajte nizDim varArray () kao Variant'deklarirajte veličinu nizaReDim varArray (1, 2)varArray (0, 0) = "Mel Smith"varArray (0, 1) = "Fred kopča"varArray (0, 2) = "Jane Eyre"varArray (1, 0) = "Računovođa"varArray (1, 1) = "Tajnik"varArray (1, 2) = "Doktor"'ponovno deklarirajte veličinu nizaReDim varArray (0, 1)'ponovno napuniti nizvarArray (0, 0) = "Mel Smith"varArray (0, 1) = "Fred kopča"Kraj podm |
Kada ponovo deklarirate niz, izgubit ćete sve podatke koji su se prethodno držali u nizu, osim ako ne koristite Izjava o očuvanju ReDim -a.
12345678910111213141516 | Sub Resize2D ()'deklarirajte niz Dim varArray () kao varijantu'deklarirajte veličinu nizaReDim varArray (1, 2)varArray (0, 0) = "Mel Smith"varArray (0, 1) = "Fred kopča"varArray (0, 2) = "Jane Eyre"varArray (1, 0) = "Računovođa"varArray (1, 1) = "Tajnik"varArray (1, 2) = "Doktor"'ponovno deklarirajte veličinu nizaReDim Preverve varArray (1, 3)'popunite niz dodatnim vrijednostimavarArray (0, 3) = "Rob Barnes"varArray (1, 3) = "Vodoinstalater"Kraj podm |
Zadnju dimenziju niza možete promijeniti samo ako želite zadržati izvorne podatke u nizu s Pre-Dim Preserve.
Kada kliknete otklanjanje pogrešaka, pogreška će biti istaknuta koja pokazuje da prva dimenzija u nizu nije ista kao prva dimenzija kada je veličina niza izvorno deklarirana.