如何永久更改数组中变量的值?我写了一些代码来说明我的问题:
Option Explicit
Dim var1 As Boolean, var2 As Boolean, var3 As Boolean
Sub Test()
Dim arrTest As Variant
Dim i
arrTest = Array(var1, var2, var3)
For Each i In arrTest
Debug.Print i
Next
For i = LBound(arrTest) To UBound(arrTest)
arrTest(i) = True
Next
For Each i In arrTest
Debug.Print i
Next
Test2
End Sub
Sub Test2()
Debug.Print "var1 in Sub Test2 : " & var1
If var1 Then
Debug.Print "Hello"
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
直接窗口中的输出为:
False
False
False
True
True
True
var1 in Sub Test2 : False
Run Code Online (Sandbox Code Playgroud)
前六行对我来说很有意义,因为我更改了中的变量值Test
。但是,它显然不是永久性的,或者仅限于一个子,因此Test2
未打印出“ Hello” 。
我该如何改变?我已经读过for each
循环是只读的,但是for
-loop 为什么不起作用?
为数组的每个元素分配“ True”不会使变量具有相同的值。奇怪的是var1仍然为False,因为您没有更改var1的值,而是数组元素的值。:)
添加类似这样的东西
var1 = arrTest(0)
var2 = arrTest(1)
var3 = arrTest(2)
Test2
Run Code Online (Sandbox Code Playgroud)