VBA -funktion Return Array

Indholdsfortegnelse

Denne artikel vil vise, hvordan du returnerer et array ved hjælp af en VBA -funktion.

VBA -funktion Return Array

Når du bruger funktioner til at returnere arrays, anbefaler jeg stærkt at deklarere arrays med typevariant:

123 Funktion ReturnArray () Som variantAfslut funktion

Variant arrays er lettere at arbejde med. Array størrelse bliver mindre bekymret.

Funktion Return Array Eksempler

Her er et eksempel på en funktion, der returnerer en matrix:

1234567891011121314151617181920212223242526272829 Funktion ReturnArray () Som variantDim tempArr Som variant'Opret nyt Temp ArrayReDim tempArr (1 til 3, 1 til 2)'Tildel matrixværdiertempArr (1, 1) = "Steve"tempArr (1, 2) = "Johnson"tempArr (2, 1) = "Ryan"tempArr (2, 2) = "Johnson"tempArr (3, 1) = "Andrew"tempArr (3, 2) = "Scott"'Output ArrayReturnArray = tempArrAfslut funktionSub TestTransposeArray ()Dim outputArr som variant'OpkaldsfunktionoutputArr = ReturnArray ()'Test outputMsgBox outputArr (2, 1)Afslut Sub

Bemærk, at vi erklærede Arrays med datatype = variant for at undgå størrelsesproblemer.

Dette eksempel tager et array som input, transponerer arrayet og udsender det nye transponerede array:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 Funktion TransposeArray (MyArray som variant) Som variantDim x Så længe, ​​y Så længeDim maxX As Long, minX As LongDim maxY As Long, minY As LongDim tempArr Som variant'Få øvre og nedre grænsermaxX = UBound (MyArray, 1)minX = LBound (MyArray, 1)maxY = UBound (MyArray, 2)minY = LBound (MyArray, 2)'Opret nyt Temp ArrayReDim tempArr (minX Til maxX, minY til maxX)'Transponer ArrayenFor x = minX Til maxXFor y = minY Til maxYtempArr (y, x) = MyArray (x, y)Næste yNæste x'Output ArrayTransposeArray = tempArrAfslut funktionSub TestTransposeArray ()Dim testArr (1 til 3, 1 til 2) som variantDim outputArr som variant'Tildel matrixværdiertestArr (1, 1) = "Steve"testArr (1, 2) = "Johnson"testArr (2, 1) = "Ryan"testArr (2, 2) = "Johnson"testArr (3, 1) = "Andrew"testArr (3, 2) = "Scott"'Call Transpose -funktionoutputArr = TransposeArray (testArr)'Test outputMsgBox outputArr (2, 1)Afslut Sub
wave wave wave wave wave