Niz povratnih funkcija VBA

Ovaj članak će pokazati kako vratiti niz pomoću VBA funkcije.

Niz povratnih funkcija VBA

Kada koristite funkcije za vraćanje nizova, toplo preporučujem da deklarirate nizove s varijantom tipa:

123 Funkcija ReturnArray () Kao varijantaZavršna funkcija

Nizovi varijanti s njima je lakše raditi. Veličina niza postaje manje zabrinjavajuća.

Primjeri polja za vraćanje funkcije

Evo primjera funkcije koja vraća niz:

1234567891011121314151617181920212223242526272829 Funkcija ReturnArray () Kao varijantaDim tempArr kao varijanta'Izradi novi niz tempReDim tempArr (1 do 3, 1 do 2)'Dodijelite vrijednosti nizatempArr (1, 1) = "Steve"tempArr (1, 2) = "Johnson"tempArr (2, 1) = "Ryan"tempArr (2, 2) = "Johnson"tempArr (3, 1) = "Andrija"tempArr (3, 2) = "Scott"'Izlazni nizReturnArray = tempArrZavršna funkcijaSub TestTransposeArray ()Dim outputArr kao varijanta'Funkcija povratnog pozivaoutputArr = ReturnArray ()'Testni izlazMsgBox outputArr (2, 1)Kraj podm

Uočite da smo deklarirali nizove s podatkovnim tipom = varijantom kako bismo izbjegli probleme s veličinom.

Ovaj primjer uzima niz kao ulaz, transponira niz i ispisuje novi transponirani niz:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 Funkcija TransposeArray (MyArray kao varijanta) kao varijantaDim x As Long, y As LongDim maxX koliko dugo, minX jednako dugoDim maxY As Long, minY As LongDim tempArr kao varijanta'Dobijte gornje i donje granicemaxX = UBound (MyArray, 1)minX = LBound (MyArray, 1)maxY = UBound (MyArray, 2)minY = LBound (MyArray, 2)'Izradi novi niz tempReDim tempArr (minX do maxX, minY do maxX)»Transponirajte nizZa x = minX do maxXZa y = minY do maxYtempArr (y, x) = MyArray (x, y)Sljedeći ySljedeći x'Izlazni nizTransposeArray = tempArrZavršna funkcijaSub TestTransposeArray ()Zatamnite testArr (1 do 3, 1 do 2) kao varijantuDim outputArr kao varijanta'Dodijelite vrijednosti nizatestArr (1, 1) = "Steve"testArr (1, 2) = "Johnson"testArr (2, 1) = "Ryan"testArr (2, 2) = "Johnson"testArr (3, 1) = "Andrija"testArr (3, 2) = "Scott"'Funkcija prijenosa pozivaoutputArr = TransposeArray (testArr)'Testni izlazMsgBox outputArr (2, 1)Kraj podm
wave wave wave wave wave