VBA funkcijų grąžinimo masyvas

Šis straipsnis parodys, kaip grąžinti masyvą naudojant VBA funkciją.

VBA funkcijų grąžinimo masyvas

Kai naudojate funkcijas masyvams grąžinti, primygtinai rekomenduoju deklaruoti masyvus su tipo variantu:

123 Funkcija ReturnArray () kaip variantasPabaigos funkcija

Variantų masyvai su jais lengviau dirbti. Masyvo dydis tampa mažiau susirūpinęs.

Funkcijų grąžinimo masyvo pavyzdžiai

Čia yra funkcijos, kuri grąžina masyvą, pavyzdys:

1234567891011121314151617181920212223242526272829 Funkcija ReturnArray () kaip variantasDim tempArr As Variant„Sukurkite naują„ Temp Array “„ReDim tempArr“ (nuo 1 iki 3, nuo 1 iki 2)„Priskirkite masyvo vertestempArr (1, 1) = "Styvas"tempArr (1, 2) = "Džonsonas"tempArr (2, 1) = "Ryanas"tempArr (2, 2) = "Džonsonas"tempArr (3, 1) = "Andrius"tempArr (3, 2) = "Skotas"„Išvesties masyvasReturnArray = tempArrPabaigos funkcijaSub TestTransposeArray ()Dim outputArr As Variant„Skambučio grąžinimo funkcijaoutputArr = ReturnArray ()'Bandymo išvestis„MsgBox“ išvestis „Ar“ (2, 1)Pabaiga Sub

Atkreipkite dėmesį, kad masyvus paskelbėme su duomenų tipu = variantu, kad išvengtume dydžio problemų.

Šiame pavyzdyje masyvas naudojamas kaip įvestis, perkeliamas į masyvą ir išvedamas naujas perkeltas masyvas:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 Funkcija TransposeArray („MyArray As Variant“) Kaip variantasDim x As Long, y As LongDim maxX As Long, minX As LongMaksimalus ilgis, minimalus ilgisDim tempArr As Variant„Gaukite viršutinę ir apatinę ribasmaxX = UBound („MyArray“, 1)minX = LBound („MyArray“, 1)maxY = UBound („MyArray“, 2)minY = LBound („MyArray“, 2)„Sukurkite naują„ Temp Array “ReDim tempArr (nuo minX iki maxX, minY iki maxX)„Perkelkite masyvąX = minX iki maxXY = minY iki maxYtempArr (y, x) = MyArray (x, y)Kitas yKitas x„Išvesties masyvasTransposeArray = tempArrPabaigos funkcijaSub TestTransposeArray ()„Dim testArr“ (nuo 1 iki 3, nuo 1 iki 2) kaip variantasDim outputArr As Variant„Priskirkite masyvo vertestestArr (1, 1) = "Styvas"testArr (1, 2) = "Džonsonas"testArr (2, 1) = "Ryanas"testArr (2, 2) = "Džonsonas"testArr (3, 1) = "Andrius"testArr (3, 2) = "Skotas"„Skambučio perkėlimo funkcijaoutputArr = TransposeArray (testArr)'Bandymo išvestis„MsgBox“ išvestis „Ar“ (2, 1)Pabaiga Sub
wave wave wave wave wave