将Excel命名范围读入数组(VBA)

时间:2016-06-28 18:07:15

标签: excel excel-vba named-ranges vba

我想将一个命名范围('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的帮助。

1 个答案:

答案 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