Lang L: none (table-of-contents)
See artikkel näitab, kuidas massiivi VBA funktsiooni abil tagastada.
VBA funktsiooni tagastamismassiiv
Funktsioonide kasutamisel massiivide tagastamiseks soovitan tungivalt deklareerida massiivid tüübivariandiga:
123 | Funktsioon ReturnArray () variandinaLõppfunktsioon |
Variatiivmassiivid nendega on lihtsam töötada. Massiivi suurus muutub vähem murettekitavaks.
Funktsiooni tagastamise massiivi näited
Siin on näide funktsioonist, mis tagastab massiivi:
1234567891011121314151617181920212223242526272829 | Funktsioon ReturnArray () variandinaDim tempArr Variandina'Loo uus temp -massiivReDim tempArr (1 kuni 3, 1 kuni 2)'Määrake massiiväärtusedtempArr (1, 1) = "Steve"tempArr (1, 2) = "Johnson"tempArr (2, 1) = "Ryan"tempArr (2, 2) = "Johnson"tempArr (3, 1) = "Andrew"tempArr (3, 2) = "Scott"'VäljundmassiivReturnArray = tempArrLõppfunktsioonAlamkatseTransposeArray ()Dim outputArr As Variant'Kõne tagasivõtmise funktsioonoutputArr = ReturnArray ()'Testi väljundMSgBoxi väljundArr (2, 1)End Sub |
Pange tähele, et suurusprobleemide vältimiseks kuulutasime massiivid andmetüübiga = variant.
See näide võtab massiivi sisendina, võtab massiivi üle ja väljastab uue ülekantud massiivi:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | Funktsioon TransposeArray (MyArray As Variant) VariantinaDim x nii pikk, y kui pikkDim maxX nii pikk, minX nii pikkDim maxY Long, minY As LongDim tempArr Variandina'Hangi ülemised ja alumised piiridmaxX = UBound (MyArray, 1)minX = LBound (MyArray, 1)maxY = UBound (MyArray, 2)minY = LBound (MyArray, 2)'Loo uus temp -massiivReDim tempArr (minX kuni maxX, minY kuni maxX)'Võta massiiv üleX = minX kuni maxXY = minY kuni maxYtempArr (y, x) = MyArray (x, y)Järgmine yJärgmine x'VäljundmassiivTransposeArray = tempArrLõppfunktsioonAlamkatseTransposeArray ()Dim testArr (1 kuni 3, 1 kuni 2) VariandinaDim outputArr As Variant'Määrake massiiväärtusedtestArr (1, 1) = "Steve"testArr (1, 2) = "Johnson"testArr (2, 1) = "Ryan"testArr (2, 2) = "Johnson"testArr (3, 1) = "Andrew"testArr (3, 2) = "Scott"„Kõne ülevõtmise funktsioonoutputArr = TransposeArray (testArr)'Testi väljundMSgBoxi väljundArr (2, 1)End Sub |