VBA从模块更改实例变量(excel)

时间:2012-11-13 17:35:38

标签: excel vba variables module instance

在VBA中,我需要一个模块子来告诉实例设置一些变量。

在第1单元中,我有:

Sub Load()
ThisWorkbook.SetupVariables
ThisWorkbook.TestVariables
End Sub

在ThisWorkbook中我有:

Private Variable1 As Integer
Private Variable2 As String
Private Variable3 As MyUserDefinedObjectType

Public Sub SetupVariables()
Variable1 = 5
Variable2 = "Five"
Set Variable3 = New MyUserDefinedObjectType()
End Sub

Sub TestVariables()
MsgBox Variable1 & " is spelled " & Variable2
Variable3.SomeFunction
End Sub

对Load()内部的TestVariables的调用会产生正确的结果,但后续对TestVariables的调用将失败。如何让Variable1和Variable2保持其值? (在我的实际情况中,这些变量是我定义的对象,不能成为公共变量。)

事件顺序:

Load存储在Module1中,并与Worksheet1上的表单按钮相关联。先按下这个。

随后,Worksheet2中的ActiveX控件告诉ThisWorkbook致电TestVariables

1 个答案:

答案 0 :(得分:0)

当你拥有它时,它对我有用。为Variable1创建一个Watch(View - Watch Window)并选择Break When Value Changes。您应该能够看到它何时变为零。