See õpetus käsitleb 2-d ja mitmemõõtmelisi massiive VBA-s.
Mitmemõõtmeline massiiv (2D massiivid)
Mitmemõõtmelised massiivid on massiivid, mis sisaldavad rohkem kui ühte dimensiooni, tavaliselt kahte või kolme mõõdet, kuid massiividel võib olla kuni 32 mõõdet.
2D -massiivi kuulutamine
Mitme dimensiooniga massiivi loomiseks kasutage iga eraldi mõõtme määramiseks komasid.
1 | Dim intArr (2,3) täisarvuna |
2D massiivi täitmine
Allolev kood täidab 2D -massiivi ja seejärel täidab töölehe read ja veerud massiivi väärtustega.
1234567891011121314151617181920212223242526 | Alamasustus2D ()'deklareerige 2D -massiivDim intA (2, 3) täisarvuna'deklareerige muutujadDim rw Nagu täisarvDim col As Integer'täitke massiivintA (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'looge massiiv läbi ja täitke ExcelRw = 0 kuni 2Kolon = 0 kuni 3Lahtrid (rw + 1, col + 1). Väärtus = intA (rw, col)Järgmine veergJärgmine rwEnd Sub |
Seejärel tuleks teie Exceli arvutustabel täita järgmiselt.
2D massiivi täitmine Exceli andmetest
Allolev kood täidab 2D -massiivi Exceli töölehelt ja täidab seejärel mõne muu lehe andmetega.
1234567891011121314151617181920212223242526 | Alamasustus2D ()'Kuulutage töölehedDim ws_Source kui töölehtDim ws_Destination kui tööleht'Deklareerige massiivDim wsData (10, 2) Variandina'Deklareerige muutujadDim rw täisarvunaDim col As Integer"vaadake allikalehteMäära ws_Source = Töölehed ("Sheet1")'hankige teave lähtelehelt ja täitke massiivRw = LBound (wsData, 1) kuni UBound (wsData, 1)Col = LBound (wsData, 2) kuni UBound (wsData, 2)wsData (rw, col) = ws_Source.Range ("A2"). Nihe (rw, col) .VäärtusJärgmine veergJärgmine rw"vaadake sihtlehteMäära ws_Destination = Töölehed ("Sheet2")'täitke massiivist sihtlehtRw = LBound (wsData, 1) kuni UBound (wsData, 1)Col = LBound (wsData, 2) kuni UBound (wsData, 2)ws_Destination.Range ("A1"). Nihe (rw, col) .Väärtus = wsData (rw, col)Järgmine veergJärgmine rwEnd Sub |
Suuruse muutmine ReDim ja Re-Dim Preserve abil
Massiivi suurust saate muuta, kasutades ReDim.
1234567891011121314151617 | Alam suuruse muutmine2D ()'kuulutage massiivDim varArray () variandina'deklareerige massiivi suurusReDim varArray (1, 2)varArray (0, 0) = "Mel Smith"varArray (0, 1) = "Fred Buckle"varArray (0, 2) = "Jane Eyre"varArray (1, 0) = "Raamatupidaja"varArray (1, 1) = "Sekretär"varArray (1, 2) = "Arst"'deklareerige massiivi suurus uuestiReDim varArray (0, 1)'täitke massiiv uuestivarArray (0, 0) = "Mel Smith"varArray (0, 1) = "Fred Buckle"End Sub |
Massiivi uuesti deklareerimisel kaotate kõik massiivis varem hoitud andmed, kui te seda ei kasuta ReDim Preserve avaldus.
12345678910111213141516 | Alam suuruse muutmine2D ()'kuulutage massiiv Dim varArray () variandiks'deklareerige massiivi suurusReDim varArray (1, 2)varArray (0, 0) = "Mel Smith"varArray (0, 1) = "Fred Buckle"varArray (0, 2) = "Jane Eyre"varArray (1, 0) = "Raamatupidaja"varArray (1, 1) = "Sekretär"varArray (1, 2) = "Arst"'deklareerige massiivi suurus uuestiReDim Preverve varArray (1, 3)'täitke massiiv lisaväärtustegavarArray (0, 3) = "Rob Barnes"varArray (1, 3) = "Torulukksepp"End Sub |
Massiivi viimase mõõtme suurust saate muuta ainult siis, kui soovite algseid andmeid massiivis hoida Säilitage uuesti.
Kui klõpsate silumisel, tõstetakse esile tõrge, mis näitab, et massiivi esimene mõõde ei ole sama, mis esimene, kui massiivi suurus algselt deklareeriti.