如何为多个按钮分配一个通用程序?

时间:2012-10-14 14:42:53

标签: excel vba

前段时间我有一个示例代码,为多个按钮分配相同的程序 像这样:

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

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

1 个答案:

答案 0 :(得分:2)

插入一个新的类模块,并将其命名为clListener(我刚想到) 代码在那里:

Public WithEvents ct As MSForms.CommandButton

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

在Userform-Module中:

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