这是个人好奇的问题。
在 VBA 中,如果我有一个大小为 2 的数组:
Dim r(1) as Variant
我希望数组中的两个值都是-1。我可以做这个:
r(0)=-1
r(1)=-1
或者我可以使用循环遍历两者并将它们设置为-1。
所以我的问题是,有什么方法可以将数组中的所有值设置为相同的值而无需迭代?
或者,有什么办法我可以做类似的事情:
r = array(-1,-1)
这可能是一个非常愚蠢的问题,但我似乎无法找到答案。
我不太擅长画图。但这应该让您清楚与变体数组相关的概念。
是的,你可以做到。但是在声明数组时你必须小心
例子
Option Explicit
Sub Sample()
Dim r As Variant '<~~
r = Array(-1, -1)
Debug.Print r(0)
Debug.Print r(1)
End Sub
跟进
请参阅 Excel 帮助文件 :) 数组函数返回一个Variant
包含一个array
. 您不能将一个数组直接分配给另一个数组。要将数组分配给另一个数组,您必须使用此方法。
Option Explicit
Sub Sample()
Dim r(1) As Variant
Dim s As Variant
Dim i As Long
s = Array(-1, -1)
For i = LBound(r) To UBound(r)
r(i) = s(i)
Next
Debug.Print r(0)
Debug.Print r(1)
End Sub