Я пытаюсь написать функцию в более крупном макросе, чтобы вернуть список элементов. Массив формируется из ячеек в электронной таблице:Как вернуть массив переменной длины из функции VBA
Function Elem_Array() As Variant
Dim Elements() As Variant
i = 1
Cells(i, 38).Select
element1 = Cells(i, 38).Value
element2 = ""
Do While element2 <> element1
i = i + 1
Cells(i, 38).Select
element2 = Cells(i, 38).Value
ReDim Preserve Elements(1 To i)
Elements(i) = element2
Loop
Elements(1) = element1
Elem_Array= Elements
End Function
При попытке установить Elem_Array равного массив элементов он заканчивает функцию без Elem_Array ничего сравнявшись. Когда я вызываю функцию, у меня заканчиваются ошибки, потому что я пытаюсь вызвать пустой массив или строку. Я пробовал использовать цикл for для заполнения Elem_Array по одному элементу за раз, но функция заканчивается без добавления чего-либо. Является ли Elements() Dim'ed как Variant или string, ничего не меняет для меня. Предложения по подобным вопросам включают использование коллекции для Elements(), а затем использование цикла, чтобы Elem_Array равнялся элементам, но, если это возможно, я хотел бы свести к минимуму изменение кода. Любая помощь приветствуется!