Масив за връщане на функция VBA

Тази статия ще покаже как да върнете масив с помощта на VBA функция.

Масив за връщане на функция VBA

Когато използвате функции за връщане на масиви, силно препоръчвам да декларирате масиви с вариант тип:

123 Функция ReturnArray () Като вариантКрайна функция

Вариантни масиви са по -лесни за работа. Размерът на масива става по -малко притеснителен.

Примери за масив за връщане на функция

Ето пример за функция, която връща масив:

1234567891011121314151617181920212223242526272829 Функция ReturnArray () Като вариантDim tempArr като вариант„Създайте нов масив от темповеReDim tempArr (1 до 3, 1 до 2)„Присвояване на стойности на масивиtempArr (1, 1) = "Стив"tempArr (1, 2) = "Джонсън"tempArr (2, 1) = "Райън"tempArr (2, 2) = "Джонсън"tempArr (3, 1) = "Андрей"tempArr (3, 2) = "Скот"'Изходен масивReturnArray = tempArrКрайна функцияSub TestTransposeArray ()Dim outputArr като вариант„Функция за връщане на обажданеoutputArr = ReturnArray ()'Тестов изходMsgBox изход Arr (2, 1)End Sub

Забележете, че декларирахме масивите с тип данни = вариант, за да избегнем проблеми с размера.

Този пример приема масив като вход, транспонира масива и извежда новия транспониран масив:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 Функция TransposeArray (MyArray като вариант) като вариантDim x As Long, y As LongDim maxX As Long, minX As LongDim maxY As Long, minY As LongDim tempArr като вариант„Вземете горни и долни границиmaxX = UBound (MyArray, 1)minX = LBound (MyArray, 1)maxY = UBound (MyArray, 2)minY = LBound (MyArray, 2)„Създайте нов масив от темповеReDim tempArr (minX To maxX, minY To maxX)- Транспонирайте масиваЗа x = minX До maxXЗа y = minY До maxYtempArr (y, x) = MyArray (x, y)Следващ yСледващ x'Изходен масивTransposeArray = tempArrКрайна функцияSub TestTransposeArray ()Dim testArr (1 To 3, 1 To 2) As VariantDim outputArr като вариант„Присвояване на стойности на масивиtestArr (1, 1) = "Стив"testArr (1, 2) = "Джонсън"testArr (2, 1) = "Райън"testArr (2, 2) = "Джонсън"testArr (3, 1) = "Андрей"testArr (3, 2) = "Скот"„Функция за транспониране на повикванеoutputArr = TransposeArray (testArr)'Тестов изходMsgBox изход Arr (2, 1)End Sub
wave wave wave wave wave