0
请你向我解释为什么下面的代码工作?将数组赋值给一个变量。 VBA代码不明确
Sub MyTest()
Dim arrL1(3) As Variant
Dim arrTemp(10) As Variant
Dim i As Long, j As Long, s As String
Dim varTemp As Variant
For i = LBound(arrL1) To UBound(arrL1)
For j = LBound(arrTemp) To UBound(arrTemp)
arrTemp(j) = i + j
Next
**arrL1(i) = arrTemp**
Next
' 2nd part of the code
**For i = LBound(arrL1) To UBound(arrL1)**
varTemp = arrL1(i)
s = ""
For j = LBound(varTemp) To UBound(varTemp)
s = s & Format(varTemp(j), "@@@")
Next
Debug.Print s
Next
End Sub
什么使我困惑的是第一个“加星号”行arrL1(i) = arrTemp
。当我尝试在我的项目中以这种方式分配数组时,我得到一个Object or Application defined error
。
另一个令人困惑的线是在第二部分,即varTemp = arrL1(i)
。我们是否真的需要另一个变量varTemp
?难道我们不能只用arrL1(i)
?
预先感谢您。
@ Shai Rado:根据第一个问题,我已经声明“Dim b As Variant”,因为我事先不知道数组的大小。这可能是问题吗? – Lola
@萝拉你用'b'而不是'arrL1(3)'? –
@ Shai Rado:对不起,我应该更清楚了。上面的代码来自一本教科书。然而我努力在我自己的代码s.t中使用它。将一个数组(一个表n x k)分配给一个变体而不必将其重新设置,不会导致错误。 – Lola