Tässä opetusohjelmassa käsitellään 2-d- ja moniulotteisia matriiseja VBA: ssa.
Moniulotteinen järjestelmä (2D-taulukot)
Moniulotteiset taulukot ovat matriiseja, jotka sisältävät useamman kuin yhden ulottuvuuden, yleensä kaksi tai kolme ulottuvuutta, mutta matriiseilla voi olla jopa 32 ulottuvuutta.
Julista 2D -sarja
Jos haluat luoda taulukon, jossa on useampi kuin yksi ulottuvuus, määritä jokainen ulottuvuus pilkuilla:
1 | Dim intArr (2,3) kokonaislukuna |
2D -sarjan täyttäminen
Alla oleva koodi täyttää 2D -taulukon ja täyttää sitten taulukon rivit ja sarakkeet taulukon arvoilla.
1234567891011121314151617181920212223242526 | Osapopulaatio2D ()'julistaa 2D -taulukonDim intA (2, 3) kokonaislukuna'ilmoittaa muuttujatDim rw kokonaislukunaDim col Kuten kokonaisluku'täytä taulukkointA (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'kierrä taulukon läpi ja täytä ExcelRw = 0 - 2Väri = 0 - 3Solut (rw + 1, col + 1). Arvo = intA (rw, col)Seuraava sarakeSeuraava rwEnd Sub |
Excel -laskentataulukko täytetään sitten seuraavasti.
2D -taulukon täyttäminen Excel -tiedoista
Alla oleva koodi täyttää 2D -taulukon Excel -laskentataulukosta ja täyttää sitten toisen taulukon tiedoilla.
1234567891011121314151617181920212223242526 | Osapopulaatio2D ()'Ilmoita laskentataulukotDim ws_Source kuten laskentataulukkoDim ws_Destination kuten laskentataulukko'Ilmoita taulukkoDim wsData (10, 2) Vaihtoehtona'Ilmoita muuttujatDim rw kokonaislukunaDim col Kuten kokonaisluku'' katso lähdeluetteloAseta ws_Source = Laskentataulukot ("Sheet1")'Hae tiedot lähdelehdestä ja täytä taulukkoRw = LBound (wsData, 1) UBound (wsData, 1)Col = LBound (wsData, 2) - UBound (wsData, 2)wsData (rw, col) = ws_Source.Range ("A2"). Siirtymä (rw, col) .ArvoSeuraava sarakeSeuraava rw'katso kohdesivuAseta ws_Destination = Laskentataulukot ("Sheet2")'täyttää kohdearkin taulukostaRw = LBound (wsData, 1) UBound (wsData, 1)Col = LBound (wsData, 2) - UBound (wsData, 2)ws_Destination.Range ("A1"). Siirtymä (rw, col) .Arvo = wsData (rw, col)Seuraava sarakeSeuraava rwEnd Sub |
Koon muuttaminen ReDim- ja Re-Dim Preserve -ohjelmilla
Voit muuttaa taulukon kokoa käyttämällä ReDim.
1234567891011121314151617 | Alikoko2D ()'julistaa taulukonDim varArray () muunnelmana'ilmoittaa taulukon koonReDim varArray (1, 2)varArray (0, 0) = "Mel Smith"varArray (0, 1) = "Fred Buckle"varArray (0, 2) = "Jane Eyre"varArray (1, 0) = "Kirjanpitäjä"varArray (1, 1) = "Sihteeri"varArray (1, 2) = "Lääkäri"'ilmoittaa uudelleen taulukon koonReDim varArray (0, 1)'aseta taulukko uudelleenvarArray (0, 0) = "Mel Smith"varArray (0, 1) = "Fred Buckle"End Sub |
Kun julistat taulukon uudelleen, menetät kaikki taulukossa aiemmin olleet tiedot, ellet käytä ReDim Preserve -lausunto.
12345678910111213141516 | Alikoko2D ()'julista taulukko Dim varArray () muuttujana'ilmoittaa taulukon koonReDim varArray (1, 2)varArray (0, 0) = "Mel Smith"varArray (0, 1) = "Fred Buckle"varArray (0, 2) = "Jane Eyre"varArray (1, 0) = "Kirjanpitäjä"varArray (1, 1) = "Sihteeri"varArray (1, 2) = "Lääkäri"'ilmoittaa uudelleen taulukon koonReDim Preverve varArray (1, 3)'täyttää taulukon lisäarvoillavarArray (0, 3) = "Rob Barnes"varArray (1, 3) = "Putkimies"End Sub |
Voit muuttaa taulukon viimeisen ulottuvuuden kokoa vain, jos haluat säilyttää alkuperäiset tiedot taulukossa Himmennä uudelleen.
Kun napsautat virheenkorjausta, virhe korostuu ja osoittaa, että taulukon ensimmäinen ulottuvuus ei ole sama kuin ensimmäinen ulottuvuus, kun taulukon koko ilmoitettiin alun perin.