0

作为这个问题的后续,用户表单允许在运行时在多页中创建 x # 个选项卡,每个选项卡都具有相同的控件,我想知道如何设置按钮的 .OnClick 行为。我正在尝试使用以下代码来实现这一点:

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

但当然似乎没有 .OnClick 方法......

4

1 回答 1

2

您定义一个带有事件的变量。一个最小的例子:用户窗体+命令按钮就可以了。用户窗体模块中的代码:

Public WithEvents btn As MSForms.CommandButton

Private Sub btn_Click()
    MsgBox "Bla"
End Sub

Private Sub UserForm_Click()
    Set btn = CommandButton1
End Sub

在表单中单击后,按钮 CommandButton 获得分配的 sub btn_Click。

为了能够每次调用同一个 sub,您需要将 sub 和 withevents 变量放入一个类中,并为您找到的每个 CommandButton 创建一个此类的实例。

于 2012-05-31T20:12:30.817 回答