vba - 使用 VBA 使用“vbModeless”创建带有按钮的动态表单
问题描述
我想在运行时创建一个vbModeless动态用户表单。用户表单只有一个按钮,就是这样。使用该表单可以正常工作,vbModal
但不幸的是,vbModeless
我无法让按钮工作的单击事件。单击按钮不会调用事件。我正在使用以下步骤/代码:
创建了一个名为
UserForm1
创建了一个
Modul1
使用以下代码命名的模块:Sub CreateFormControls() 'Create Command Button Dim Button01 As MSForms.CommandButton Set Button01 = UserForm1.Controls.Add("Forms.CommandButton.1", "dynButton01", False) Button01.Visible = True 'Reference click event Dim ClickEvents As New Class1 Set ClickEvents.ButtonEvent = Button01 'Show User Form UserForm1.Show vbModeless '-> THIS DOES NOT WORK, only vbmodal works End Sub
创建了一个
Class1
使用以下代码命名的类模块:Public WithEvents ButtonEvent As MSForms.CommandButton Private Sub ButtonEvent_Click() MsgBox "Test" Unload UserForm1 End Sub
有没有办法让这个工作vbModeless
或有不同的工作?
注意:我还没有非常多地使用动态表单,并且我使用现有代码片段复制/修改了显示的实现,但没有完全理解按钮对象如何引用点击事件,例如为什么需要一个单独的类而我不能这样做它在 Modul1 的过程中。我认为这就是为什么它无法打开非模态表单的原因。对这个问题稍加了解也将不胜感激。
解决方案
ClickEvents
应该在模块级别声明...
Option Explicit
Dim ClickEvents As New Class1 'declared at the module level
Sub CreateFormControls()
'etc
'
'
End Sub
推荐阅读
- groovy - rpc_address 未设置为 0.0.0.0 时使用 groovy 脚本的 Cassandra 连接
- sql - 填写日期查询中缺少的月份
- mule - mule 3中异常“IllegalArgumentException:FlowConstruct不能为null”的根本原因是什么?
- spring - 如何处理 Spring Data 中的双向@DBref?
- python-3.x - 子类 psycopg2 异常并重新引发自定义实例
- javascript - 正则表达式匹配除空格和最后 4 个字符以外的所有字符
- python - 如何使用 Python 套接字在 HTTP 服务器中实现 POST 请求
- gcc - 是否可以为链接器开发 GCC 插件?
- java - Spring boot应用程序whitelabel错误页面
- python - 在 hist() 的 python Matplotlib.pyplot 中,我想选择 xlabel 和 ylabel 值