这种情况最好的方法是使用WithEvents
先做一个类模块,然后改好名字,在我的示例里面,我使用f_MSButt,里面的代码如下:
Public WithEvents m_Butt As MSForms.CommandButton
Private Sub m_Butt_Click()
MsgBox m_Butt.Caption
End Sub
然后在你的窗体中,输入以下代码:
Dim ButtonClick() As New f_MSButt
Private Sub UserForm_Initialize()
ReDim ButtonClick(1 To Me.Controls.Count)
Dim MsCon As MSForms.Control
Dim R1
For Each MsCon In Me.Controls
If MsCon.Name Like "CommandButton*" Then
R1 = R1 + 1
Set ButtonClick(R1).m_Butt = MsCon
End If
Next MsCon
End Sub
这样不管你点那个按钮,都会自动弹出对应caption的提示窗了。