我正在尝试通过循环数据集来构建数组。
里面的值是对象/范围类型。 (例如34FF544)
我收到“类型不匹配”错误。
Dim arr2 As Variant
Dim y As Long
Dim eil As Long
eil = 1
y = 1
Do Until Sheets(2).Range("A" & eil) = "" 'looping until the blank cell
arr2(y) = Range("A" & eil) 'storing the value in an array
y = y + 1 'next array element
eil = eil + 1 'next row to take value from
Loop
答案 0 :(得分:1)
当前填充数组的方式是动态的,为此您需要调整以下两项:
“通过声明动态数组,您可以在代码的同时调整数组的大小 在跑。使用Static,Dim,Private或Public语句进行声明 一个数组,括号为空。“ Office Dev Center
因此请确保您以Dim arr2() As Variant
第二件事是,因为您使用动态数组,所以可以选择在循环之前调整数组的大小,但是您也可以随时随地调整数组的大小,这就是您的路线:
Do Until Sheets(2).Range("A" & eil) = ""
ReDim Preserve arr2(y) 'This is your key!
arr2(y) = Range("A" & eil)
y = y + 1
eil = eil + 1
Loop
现在您知道了罪魁祸首,看看您的代码实际上有多充足也很不错。想到的几件事:
您同时拥有y
和eil
的数量,为什么不只使用其中之一?
您可以一次加载一个范围内的数组
With... End With