gpt4 book ai didi

arrays - VBA:更改数组中变量的值

转载 作者:行者123 更新时间:2023-12-02 00:54:14 24 4
gpt4 key购买 nike

如何永久更改数组中变量的值?我写了一些代码来说明我的问题:

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

直接窗口中的输出是:

False
False
False
True
True
True
var1 in Sub Test2 : False

前六行对我来说很有意义,因为我更改了 Test 中变量的值。然而,它显然不是永久的,或者它仅限于那个子程序,因此 Test2 中的“Hello”没有被打印。

我该如何改变这个?我读到 foreach 循环是只读的,但为什么 for 循环不起作用?

最佳答案

将“True”分配给数组的每个元素并不会使变量具有相同的值。没有什么奇怪的,你的 var1 仍然是 False,因为你没有改变 var1 的值,而是改变了数组元素的值。 :)

添加这样的内容

var1 = arrTest(0)
var2 = arrTest(1)
var3 = arrTest(2)

Test2

关于arrays - VBA:更改数组中变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57686894/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com