Опитвам се да напиша функция в рамките на по-голям макрос, за да върна списък от елементи. Масивът се генерира от клетки в електронната таблица:
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 равен на масива Elements, той завършва функцията, без Elem_Array да се равнява на нещо. Когато извикам функцията, в крайна сметка получавам грешки, защото се опитвам да извикам празен масив или низ. Опитах се да използвам for цикъл за попълване на Elem_Array един по един елемент, но функцията завършва без добавяне на нищо. Дали Elements() е Dim'ed като вариант или низ не променя нищо за мен. Предложенията за подобни въпроси включват използване на колекция за Elements() и след това използване на цикъл, за да има Elem_Array равен на Elements, но ако е възможно, бих искал да сведа до минимум промяната на кода твърде много. Всяка помощ се оценява!