在工作表上获取activexbutton的标题属性

我有约10个button在工作表上,并附加一个macros按他们时,我想获得button的标题

ButtonName = Application.Caller Debug.Print Application.Caller MsgBox ButtonName.Caption 

随着button数量的增加,我想用他们可以使用的标题来标识它们

 Select Case ButtonName Case Button 1 Msgbox "Text of Button 1" . . . . End Select 

但是我将来不会有所有的情况。

以下是您需要在工作表上添加捕获button事件的每一件事情。 如果您有任何问题,请告诉我。

在这里输入图像说明

button处理程序类

 Option Explicit Public WithEvents button As MSForms.CommandButton Private Sub button_Click() Select Case button.Caption Case "CommandButton1" Case "CommandButton2" Case "CommandButton3" End Select Debug.Print button.Caption End Sub 

公共模块代码

 Option Explicit Public ButtonCollection As Collection Sub InitButtons() Set ButtonCollection = New Collection AddButtonListeners Worksheets("Sheet1") AddButtonListeners Worksheets("Sheet2") AddButtonListeners Worksheets("Sheet3") End Sub Sub AddButtonListeners(ws As Worksheet) Dim ctrl As OLEObject Dim EventHandler As ButtonsHandler For Each ctrl In ws.OLEObjects If ctrl.progID = "Forms.CommandButton.1" Then Set EventHandler = New ButtonsHandler Set EventHandler.button = ctrl.Object ButtonCollection.Add EventHandler End If Next End Sub