作为这个问题的后续,用户表单允许在运行时在多页中创建 x # 个选项卡,每个选项卡都具有相同的控件,我想知道如何设置 .按钮的点击行为。我正在尝试使用以下代码来实现这一点:
For Each ctl In MultiPage1.Pages(NumSegs - 1).Controls
If TypeOf ctl Is MSForms.CommandButton Then
ctl.Name = "Segment" & NumSegs & "Button"
ctl.OnClick = "Span_Form_Click_Handler"
End If
Next
但当然,似乎没有.点击方法...
定义一个包含事件的变量。一个最小的例子:用户窗体+命令按钮。用户窗体模块中的代码:
Public WithEvents btn As MSForms.CommandButton
Private Sub btn_Click()
MsgBox "Bla"
End Sub
Private Sub UserForm_Click()
Set btn = CommandButton1
End Sub
在窗体中单击后,按钮 命令按钮 获取分配的子btn_Click。
为了能够每次调用相同的 sub,您需要将 sub 和 withevents 变量放入一个类中,并为找到的每个 CommandButton 创建此类的实例。