Vrstni niz funkcij VBA

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
wave wave wave wave wave