Excel VBA : Диапазон до массива строк за 1 шаг

Я знаю, что вы можете легко взять диапазон ячеек и вставить их в массив вариантов, но я хочу работать со строковым массивом (потому что он одномерный и требует меньше памяти, чем массив вариантов).

Есть ли способ автоматически преобразовать диапазон в массив строк?

Прямо сейчас я использую функцию, которая принимает диапазон и сохраняет значения в массиве вариантов, а затем преобразует массив вариантов в массив строковый массив. Это хорошо работает, но я ищу способ перейти непосредственно от диапазона к строковому массиву. Любая помощь будет принята с благодарностью.

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: Ответ принадлежит Саймону, который приложил огромные усилия (как и все остальные) и совершенно точно указал, что действительно невозможно перейти от диапазона к массиву строк за один раз. Всем спасибо.

21
задан aevanko 28 November 2012 в 13:35
поделиться