Съдържание
Тази статия ще покаже как да върнете масив с помощта на 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 |