Я хочу прочитать именованный диапазон ('NamedRange') в массив ('NamedRangeAsArray'). Я пробовал много вещей без успеха, и я надеюсь найти способ сделать это независимо от длины или высоты именованного диапазона (а затем расширения, а затем размеров массива).Чтение имени именованного диапазона в массив (VBA)
Я попытался:
Dim NamedRangeAsArray As Variant
NamedRangeAsArray = Range("NamedRange").Value
(считывает только первую ячейку именованного диапазона в массив [1,1]);
также
NamedRangeAsArray = Range(Workbook.Names("NamedRange").RefersToRange.Address)
(не работает вообще),
безрезультатно. Есть идеи? Поделись, пожалуйста. Благодаря!
Update:
Dim NamedRangeAsArray() As Variant
NamedRangeAsArray() = Range(Workbook.Names("NamedRange").RefersToRange.Address)
For i = LBound(NamedRangeAsArray()) To UBound(NamedRangeAsArray())
MsgBox NamedRangeAsArray(i, 1)
Next i
(читает только первую ячейку именованного диапазона в массив [1,1])
Спасибо вам @findwindow и @ Брайан за помощь.
Попробуйте 'Dim NamedRangeAsArray() As Variant' – findwindow
Как вы в настоящее время она' NamedRangeAsArray' не является массивом. – Brian
Спасибо. Однако даже в скобках массив содержит только первую ячейку именованного диапазона. Есть идеи? Благодаря! – PBG