【发布时间】:2016-02-22 09:36:26
【问题描述】:
我在修改声明为 public 的数组的值时遇到问题。
这是我的代码:
在 UserForm1 的声明中我有
Public MyArray as Variant
在“Private Sub UserForm_activate()”中我有:
MyArray = Array(0, 0, 0, 0, 1)
直到它开始工作
在 UserForm3 中我有:
Private Sub CheckBox1_Click()
If UserForm1.MyArray(4) = 1 Then
UserForm1.MyArray(0) = 1
UserForm1.MyArray(4) = 0
ElseIf UserForm1.MyArray(0) = 1 Then
UserForm1.MyArray(0) = 0
UserForm1.MyArray(4) = 1
End If
End Sub
当我调试时,我看到例如 MyArray(0) 永远不会更改为 1
我总是使用公共变量,这可以工作,但不适用于数组
读取数组没问题但不修改值...
你有什么想法吗?
谢谢,
【问题讨论】:
-
public myArray 不属于 UserForm1 为什么叫
UserForm1.MyArray(4)?就此而言,您甚至如何使用它?每个工作表的顶部都有Option Explicit 吗?如果不使用 VBE 的工具 ► 选项 ► 编辑器 ► 需要变量声明将其放在那里。 -
我在 UserForm1 的最顶部声明了 myArray。
-
如何使它成为 UserForm1 的成员?我在
Option Explicit上询问的状态是什么? -
@MathieuDebouvries 你可能想看看这个:stackoverflow.com/questions/15959018/…