Satura rādītājs
Šis raksts parādīs, kā atgriezt masīvu, izmantojot VBA funkciju.
VBA funkciju atgriešanas masīvs
Izmantojot funkcijas, lai atgrieztu masīvus, es ļoti iesaku deklarēt masīvus ar tipa variantu:
123 | Funkcija ReturnArray () kā variantsBeigu funkcija |
Variantu masīvi ir vieglāk strādāt. Masīva lielums kļūst mazāk satraucošs.
Funkciju atgriešanas masīva piemēri
Šeit ir piemērs funkcijai, kas atgriež masīvu:
1234567891011121314151617181920212223242526272829 | Funkcija ReturnArray () kā variantsDim tempArr Kā variants'Izveidojiet jaunu temp masīvuReDim tempArr (no 1 līdz 3, no 1 līdz 2)Piešķiriet masīva vērtībastempArr (1, 1) = "Stīvs"tempArr (1, 2) = "Džonsons"tempArr (2, 1) = "Raiens"tempArr (2, 2) = "Džonsons"tempArr (3, 1) = "Endrjū"tempArr (3, 2) = "Skots"'Izvades masīvsReturnArray = tempArrBeigu funkcijaSub TestTransposeArray ()Dim outputArr As Variant'Zvana atgriešanas funkcijaoutputArr = ReturnArray ()'Testa izvadeMsgBox izejaArr (2, 1)Beigu apakš |
Ievērojiet, ka masīvus deklarējām ar datu tipu = variants, lai izvairītos no lieluma problēmām.
Šajā piemērā masīvs tiek ievadīts, tas tiek transponēts un tiek izvadīts jaunais transponētais masīvs:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | Funkcija TransposeArray (MyArray As Variant) Kā variantsIzmērs x tik garš, y tik garšDim maxX As Long, minX As LongDim maxY as Long, minY As LongDim tempArr Kā variants'Iegūstiet augšējās un apakšējās robežasmaxX = UBound (MyArray, 1)minX = LBound (MyArray, 1)maxY = UBound (MyArray, 2)minY = LBound (MyArray, 2)'Izveidojiet jaunu temp masīvuReDim tempArr (minX līdz maxX, minY līdz maxX)'Transponējiet masīvuAttiecībā uz x = minX līdz maxXAttiecībā uz y = minY līdz maxYtempArr (y, x) = MyArray (x, y)Nākamais gNākamais x'Izvades masīvsTransposeArray = tempArrBeigu funkcijaSub TestTransposeArray ()Dim testArr (1 līdz 3, 1 līdz 2) kā variantsDim outputArr As VariantPiešķiriet masīva vērtībastestArr (1, 1) = "Stīvs"testArr (1, 2) = "Džonsons"testArr (2, 1) = "Raiens"testArr (2, 2) = "Džonsons"testArr (3, 1) = "Endrjū"testArr (3, 2) = "Skots"'Zvanu transponēšanas funkcijaoutputArr = TransposeArray (testArr)'Testa izvadeMsgBox izejaArr (2, 1)Beigu apakš |