Ale*_*lec 5 excel vba excel-vba
这是个人好奇心的问题.
在VBA中,如果我有一个大小为2的数组:
Dim r(1) as Variant
Run Code Online (Sandbox Code Playgroud)
我希望数组中的两个值都为-1.我可以做这个:
r(0)=-1
r(1)=-1
Run Code Online (Sandbox Code Playgroud)
或者我可以用循环迭代它们并将它们设置为-1.
所以我的问题是,有没有什么方法可以将数组中的所有值设置为相同的东西而不进行迭代?
或者,有什么方法可以做我喜欢的事情:
r = array(-1,-1)
Run Code Online (Sandbox Code Playgroud)
这可能是一个非常愚蠢的问题,但我似乎无法找到答案.
是的,你可以做到.但是在声明数组时你必须小心
例
Option Explicit
Sub Sample()
Dim r As Variant '<~~
r = Array(-1, -1)
Debug.Print r(0)
Debug.Print r(1)
End Sub
Run Code Online (Sandbox Code Playgroud)
跟进
请参阅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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14049 次 |
最近记录: |