Я пытаюсь преобразовать диапазон переменной длины в вариантный массив. Диапазон всегда будет одним столбцом с переменным количеством строк. Что-то в этом духе Range (B2: B711).
Я пытался выяснить, как перебирать массив, но не могу понять, как заставить это работать. Я могу использовать a для каждого l oop до l oop через каждый элемент, но я не могу повторить, используя стандарт для l oop.
. Я настроил тестовую функцию ниже. Раскомментирование любой из строк debug.print (month_arr (...)) приводит к остановке l oop в индексе 0 с нулевым выводом.
Не могу понять:
- Форма массива, созданная month_arr = my_range.Value2
- Правильный синтаксис для доступа к значениям индекса month_arr
- Почему для каждого l oop можно прочитать массив но стандарт для l oop не может.
Если кто-нибудь может дать какие-либо указания относительно того, что я делаю неправильно, это будет с благодарностью.
Function my_test(my_range As Range) As Variant
Dim i As Integer
Dim start_row As Integer
Dim month_arr As Variant
Dim last_index As Integer
Dim elem
month_arr = my_range.Value2
start_row = my_range.row - 1
last_index = UBound(month_arr)
Debug.Print (start_row)
Debug.Print (last_index)
' For Each elem In month_arr
' Debug.Print elem
' my_test = 1
' Next elem
For i = 0 To last_index
'Debug.Print (month_arr(i))
'Debug.Print (month_arr(i, 0))
'Debug.Print (month_arr(i, 1))
'Debug.Print (month_arr(i, 2))
'Debug.Print (month_arr(0, i))
'Debug.Print (month_arr(1, i))
'Debug.Print (month_arr(2, i))
Debug.Print ("i: " & i)
If i >= 10 Then
'my_test = Return month_arr at index 10
Exit Function
End If
Next i
End Function