Масив повернення функції 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 outputArr (2, 1)End Sub

Зверніть увагу, що ми оголосили масиви з типом даних = варіант, щоб уникнути проблем із розміром.

Цей приклад бере масив як вхід, транспонує масив і виводить новий транспонований масив:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 Функція TransposeArray (MyArray As Variant) як VariantDim x As Long, y As LongDim maxX як довго, minX як довгоDim 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 до maxX, від minY до maxX)'Перенесіть масивДля x = minX До maxXДля y = minY До maxYtempArr (y, x) = MyArray (x, y)Далі yДалі x'Вихідний масивTransposeArray = tempArrФункція завершенняSub TestTransposeArray ()Затемнити тестArr (1 до 3, 1 до 2) як варіантDim outputArr як варіант'Призначити значення масивуtestArr (1, 1) = "Стів"testArr (1, 2) = "Джонсон"testArr (2, 1) = "Райан"testArr (2, 2) = "Джонсон"testArr (3, 1) = "Андрій"testArr (3, 2) = "Скотт"'Функція транспонування дзвінківoutputArr = TransposeArray (testArr)'Тестовий результатMsgBox outputArr (2, 1)End Sub
wave wave wave wave wave