获取从Excel范围读取数组的第i个元素

我已经创build了一个数组使用:

Dim PodList() As Variant Dim i As Long PodList = Range("A5:A19") For i = LBound(PodList) To UBound(PodList) Range("B4").Value = PodList(i) Next 

我在循环中的行不起作用。 我试图打印/粘贴PodList的第i个元素到单元格B4,但我得到“下标超出范围”。

这个

 PodList = Range("A5:A19") 

返回一个二维数组。 将范围读入Variant总是会返回一个二维数组(除非是在读取单个单元格,在这种情况下,它只是一个值,而不是数组)。

你的二维数组有尺寸(15,1),即15行1列。 但是通过询问PodList(i)即只有一个索引或下标,你把它看作是一个一维数组,所以它不是,因此“下标超出范围”的错误。

你想遍历(一)列的行,引用二维数组的下标,就像这样:

 For i = LBound(PodList,1) To UBound(PodList,1) Range("B4").Value = PodList(i,1) Next 

LBound(PodList,1)UBound(PodList,1)告诉你第一维的边界(并分别返回1和15)。