将按钮字幕用作可变excel



这一定是一个明显的事情,但是我想使用命令按钮的名称,该命令按钮在Excel中用作宏中的变量。宏就像将单元格的值设置为按钮名称一样简单;因此,如果按下按钮字幕" 10",则单元格值将为" 10",则需要对所有数字按钮字幕/名称使用相同的宏。再次,对不起,如果这很明显!

尝试一下,使用表单按钮,而不是ActiveX按钮。

Sub Button1_Click()
    If Not IsError(Application.Caller) Then
        Dim obj2 As Object
        Set obj2 = ActiveSheet.Shapes.Item(Application.Caller)
        Debug.Print obj2.AlternativeText
    End If
End Sub

但是您的问题询问了有关命令按钮(ActiveX varivety)的问题,这更多地参与了,我们需要找到形状,然后通过Oleformat和两层IDISPATCH进行钻探以获取对命令按钮的引用,然后我们使用与fire fire事件处理程序有关的事件。

Option Explicit
'* Inside Sheet module
Private WithEvents mcmd As MSForms.CommandButton
Private Sub Initialise()
    Dim obj As Object
    Set obj = Me.Shapes.Item("CommandButton1")
    Set mcmd = obj.OLEFormat.Object.Object
End Sub
Private Sub mcmd_Click()
    Debug.Print mcmd.Caption
End Sub

可悲的是,我认为您认为每个命令按钮都需要这样的初始化代码。