我想将一个命名范围('NamedRange')读入一个数组('NamedRangeAsArray')。我已经尝试了许多没有成功的事情,并希望找到一种方法来做到这一点,无论命名范围的长度或高度(以及扩展然后,数组的尺寸)。
我试过了:
Dim NamedRangeAsArray As Variant
NamedRangeAsArray = Range("NamedRange").Value
(仅将指定范围的第一个单元格读入数组[1,1]);
也
NamedRangeAsArray = Range(Workbook.Names("NamedRange").RefersToRange.Address)
(根本不起作用),
无济于事。有任何想法吗?请分享。谢谢!
更新
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和@Brian的帮助。
答案 0 :(得分:1)
尝试以下方法:
Option Explicit
Sub Compare()
Dim NamedRangeAsArray() As Variant
NamedRangeAsArray = Application.Transpose(Range("NamedRange"))
For i = LBound(NamedRangeAsArray) To UBound(NamedRangeAsArray)
MsgBox NamedRangeAsArray(i)
Next i
End Sub