0

前段时间我有一个示例代码来为多个按钮分配相同的过程。
像这样的东西:

For Eeach buttton in Form1
If button is clicked
MsgBox button.Caption.

但是我现在找不到这个代码。
谷歌搜索我找不到我需要的东西。
我只记得我需要插入一个类模块。
有人可以给我一个链接或一个简短的例子。

4

1 回答 1

2

插入一个新的类模块并命名它clListener(我刚想到)。
里面的代码:

Public WithEvents ct As MSForms.CommandButton

Public Sub ct_Click()
    MsgBox ct.Name & " clicked!"
End Sub

在用户窗体模块中:

Private listenerCollection As New Collection

Private Sub UserForm_Initialize()
    Dim ctItem
    Dim listener As clListener

    For Each ctItem In Me.Controls
        If TypeName(ctItem) = "CommandButton" Then
            Set listener = New clListener
            Set listener.ct = ctItem
            listenerCollection.Add listener
        End If
    Next
End Sub
于 2012-10-14T15:00:21.273 回答