Я знаю, что вы можете легко взять ряд ячеек и пощекотать их в Variant Array, но я хочу работать со строковым массивом (потому что он одномерный и занимает меньше памяти, чем массив Variant).
Есть ли способ автоматического преобразования диапазона в массив строк?
В настоящее время я использую функцию, которая будет принимать диапазон и сохранять значения в альтернативном массиве, а затем преобразовать массив вариантов в массив строк. Он работает хорошо, но я ищу способ перейти непосредственно из диапазона в строковый массив. Любая помощь будет принята с благодарностью.
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
UPDATE: Похоже, что нет способа пропустить шаг метаданных в переменный массив, прежде чем преобразовать его в одномерный массив строк. Позор, если это правда (даже если это не требует больших усилий, мне нравится ультра-оптимизировать, поэтому я надеялся, что есть способ пропустить этот шаг). Я закрою вопрос через несколько дней, если решение не представится. Спасибо за полезные комментарии, ребята!
UPDATE2: Ответ идет к Симону, который прилагал большие усилия (так же сделал и все остальные), и предельно указал на то, что действительно невозможно перейти от диапазона к массиву строк за один выстрел. Спасибо, всем.