Я знаю, что вы можете легко взять диапазон ячеек и вставить их в массив вариантов, но я хочу работать со строковым массивом (потому что он одномерный и требует меньше памяти, чем массив вариантов).
Есть ли способ автоматически преобразовать диапазон в массив строк?
Прямо сейчас я использую функцию, которая принимает диапазон и сохраняет значения в массиве вариантов, а затем преобразует массив вариантов в массив строковый массив. Это хорошо работает, но я ищу способ перейти непосредственно от диапазона к строковому массиву. Любая помощь будет принята с благодарностью.
Function RangeToArray(ByVal my_range As Range) As String()
Dim vArray As Variant
Dim sArray() As String
Dim i As Long
vArray = my_range.Value
ReDim sArray(1 To UBound(vArray))
For i = 1 To UBound(vArray)
sArray(i) = vArray(i, 1)
Next
RangeToArray = sArray()
End Function
ОБНОВЛЕНИЕ: Похоже, что нет способа пропустить этап добавления данных в массив переменных перед преобразованием их в одномерный массив строк. Жаль, если это правда (даже если это не требует больших усилий, мне нравится ультраоптимизировать, поэтому я надеялся, что есть способ пропустить этот шаг). Я закрою вопрос через несколько дней, если решения не появятся. Спасибо за полезные комментарии, ребята!
UPDATE2: Ответ принадлежит Саймону, который приложил огромные усилия (как и все остальные) и совершенно точно указал, что действительно невозможно перейти от диапазона к массиву строк за один раз. Всем спасибо.