【发布时间】:2018-01-31 23:30:01
【问题描述】:
如果已经问过这个问题,我很抱歉,但我似乎找不到答案。我想在用户窗体上设置一个做某事,因为它是根据从属性传递给它的值加载的。我拥有的是 Excel 工作表上的一个按钮,它加载用户表单,如下所示:
Sub button()
Dim fm As New UserForm1
fm.ValueToPass = "Hello"
fm.Show
End Sub
表单后面是以下代码:
Private myString As String
Public Property Let ValueToPass(ByVal x As String)
myString = x
End Property
Private Sub UserForm_Initialize()
If myString = "Hello" Then
'Do something on my form
else
'Do something else on my form
end if
End Sub
问题是当表单被加载时,myString 是空的。我相信原因是在设置属性 ValueToPass 之前初始化了表单。什么是最好的解决方案?
【问题讨论】:
-
您可以使用 Userform 的 Activate 事件,或者更好的 IMO,使用该属性来设置标签标题(如果仅此而已)。