因此,我试图在工作簿中显示任何用户表单时启动一个事件。他们都会做同样的事情,但我不想为每个UserFormX.Show
.
我已经阅读UserForm_Activate()
并UserForm_Initialize()
了解它们类似于以下内容。
Private Sub UserForm_Activate()
''Do some stuff
End Sub
我也明白UserForm
应该是表单本身的名称。任何激活/显示的用户表单有没有办法让这种情况发生?
谢谢
不完全是你所追求的,但它可能是你能得到的最接近的。
添加对的引用Microsoft Forms 2.0 Object Library
在标准模块中创建一个Sub
来处理常见操作
Sub FormInitialize(frm As MSForms.UserForm)
With frm
' do stuff
End With
End Sub
在每个表单模块中创建一个标准Initialize event
Private Sub UserForm_Initialize()
FormInitialize Me
End Sub
仍然必须Sub
为每个表单创建一个,但至少它总是相同的,并且只有一个实际初始化逻辑的副本。
您可以从每个表单的 Initialize 事件中调用主线代码中的例程吗?
Private Sub UserForm_Initialize()
Call MainCode_FormHandler(.Me)
End Sub
在主代码中:
Public Sub MainCode_FormHandler(oForm as Form)
With oForm
' Set form's properties here
End With
End With
如果您需要确定哪个表单已通过,您可以包含测试 oForm.Tag 的逻辑。在表单的“属性”对话框中设置表单的标签。