VBA mitmemõõtmeline massiiv (2D massiivid)

Lang L: none (table-of-contents)

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.

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave