У меня есть код, который читает диапазоны и преобразует их в массивы для обработки. Он, к сожалению, терпит неудачу, когда диапазон имеет только одну ячейку.Не удалось создать массив из 1 диапазона ячеек в VBA
сводиться проблему, рассмотрим следующие диапазоны (r1, r2) с соответственно 1 и 2 клетки, что я хочу, чтобы преобразовать в массивы a1 и a2, соответственно:
Sub ranges_to_arrays()
Dim r1 As Range, r2 as Range
Dim a1() As Variant, a2() as Variant
Set r2 = Worksheets("test").Range("A1:A2")
a2 = r2 ' Creates Variant(1 to 2, 1 to 1)
Set r1 = Worksheets("test").Range("A1")
a1 = r1 'Fails with a type mismatch
End Sub
Как я могу гарантировать, что массив будет создан, даже если диапазон имеет только один элемент?