【发布时间】:2014-09-20 04:45:22
【问题描述】:
我在 Worksheet 后面有一个宏代码。当在工作表上单击按钮时,新的用户表单被初始化并显示给用户。如果用户使用红色 X 关闭窗口,或者使用“隐藏”函数/方法关闭表单,则 Worksheet 后面的所有全局变量都会丢失它们的值。是否可以保留这些值?
背后的工作表代码:
Private MeasurementCollection As Collection
Dim CurrentMeasurement As measurement
Dim NewMeasurement As measurement
Private Sub Worksheet_Activate()
Initialize
End Sub
Public Sub Initialize()
Set NewMeasurement = New measurement
Dim DropDownDataQueries As Collection
Set DropDownDataQueries = DBQueries.GetAllUpdateQueries
For i = 1 To DropDownDataQueries.Count
Dim Values As Collection
Set Values = DataBase.GetData(DropDownDataQueries(i))
With Me.OLEObjects("Combo" & i).Object
For Each value In Values
.AddItem value
Next value
End With
Next i
End Sub
Private Sub UpdateDB_Click()
UpdateGeneralData
If (CurrentMeasurement Is Nothing) Then
MsgBox ("Message text")
Else
Dim form As UpdateComentForm
Set form = New UpdateComentForm
form.Show
End If
End Sub
Private Sub Combo1_Change()
If Application.EnableEvents = True Then
If (Combo1.value <> "") Then
NewMeasurement.DN = Combo1.value
Else
NewMeasurement.DN = 0
End If
End If
End Sub
用户窗体代码
Private Sub UpdateDBData_Click()
If (Komentar.value <> "") Then
Me.Hide
Else
MsgBox ("Prosimo napišite vzrok za spremembe podatkov v belo polje!")
End If
End Sub
Private Sub UserForm_Terminate()
Me.Hide
End Sub
【问题讨论】:
-
您能提供您目前拥有的代码以及您尝试过的代码吗?
-
不,我不会在任何地方调用 End 语句。我试图在 Terminate 事件中隐藏用户表单,但仍然是同样的问题...
-
重置的变量是什么?你如何测试它?
-
NewMeasurement 变量已重置。它是类模块的对象。在用户窗体关闭后,当我想为该对象内的变量赋值时,出现错误。错误状态:对象变量或未设置块变量。
-
你在哪一行得到错误? (我猜与被重置的全局变量无关)
标签: vba variables excel userform