Kazalo
Ta članek bo pokazal, kako vrniti niz z uporabo funkcije VBA.
Vrstni niz funkcij VBA
Pri uporabi funkcij za vrnitev nizov toplo priporočam, da razglasite matrike z različico tipa:
123 | Funkcija ReturnArray () kot variantaKončana funkcija |
Različni nizi z njimi je lažje delati Velikost matrike postaja manj zaskrbljujoča.
Primeri vrnitve niza funkcij
Tu je primer funkcije, ki vrne matriko:
1234567891011121314151617181920212223242526272829 | Funkcija ReturnArray () kot variantaZatemni tempArr kot varianto'Ustvari nov niz tempReDim tempArr (1 do 3, 1 do 2)'Dodelite vrednosti matriketempArr (1, 1) = "Steve"tempArr (1, 2) = "Johnson"tempArr (2, 1) = "Ryan"tempArr (2, 2) = "Johnson"tempArr (3, 1) = "Andrew"tempArr (3, 2) = "Scott"'Izhodni nizReturnArray = tempArrKončana funkcijaSub TestTransposeArray ()Dim outputArr kot varianta'Funkcija povratnega klicaoutputArr = ReturnArray ()'Testni izhodMsgBox outputArr (2, 1)End Sub |
Upoštevajte, da smo nize označili s podatkovno vrsto = varianto, da se izognemo težavam z velikostjo.
Ta primer vzame matriko kot vhod, prenese matriko in prikaže novo preneseno matriko:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | Funkcija TransposeArray (MyArray As Variant) Kot VariantDim x As Long, y As LongDim maxX As Long, minX As LongDim maxY As Long, minY As LongZatemni tempArr kot varianto"Pridobite zgornje in spodnje mejemaxX = UBound (MyArray, 1)minX = LBound (MyArray, 1)maxY = UBound (MyArray, 2)minY = LBound (MyArray, 2)'Ustvari nov niz tempReDim tempArr (minX do maxX, minY do maxX)'Prenesite matrikoZa x = minX do maxXZa y = minY do maxYtempArr (y, x) = MyArray (x, y)Naslednji yNaslednji x'Izhodni nizTransposeArray = tempArrKončana funkcijaSub TestTransposeArray ()Zatemni testArr (1 do 3, 1 do 2) kot variantoDim outputArr kot varianta'Dodelite vrednosti matriketestArr (1, 1) = "Steve"testArr (1, 2) = "Johnson"testArr (2, 1) = "Ryan"testArr (2, 2) = "Johnson"testArr (3, 1) = "Andrew"testArr (3, 2) = "Scott"'Funkcija prenosa klicaoutputArr = TransposeArray (testArr)'Testni izhodMsgBox outputArr (2, 1)End Sub |