Excel 将宏指定给多张图纸上的按钮

Excel 将宏指定给多张图纸上的按钮,excel,vba,Excel,Vba,如何将此宏分配给多个工作表中的按钮;即,无论按钮的名称是“按钮1”还是“按钮2” 您可以使用Application.Caller来确定什么叫做例程。你可以这样使用它 仅更新已单击的按钮 Sub AllButtons_Click() With ActiveSheet.Shapes(Application.Caller) If .TextFrame.Characters.Text = "Disable Events" Then .TextFrame.C

如何将此宏分配给多个工作表中的按钮;即,无论按钮的名称是“按钮1”还是“按钮2”


您可以使用
Application.Caller
来确定什么叫做例程。你可以这样使用它

仅更新已单击的按钮

Sub AllButtons_Click()
    With ActiveSheet.Shapes(Application.Caller)
        If .TextFrame.Characters.Text = "Disable Events" Then
            .TextFrame.Characters.Text = "Enable Events"
            SelectionChange_Enabled = False
        Else
            .TextFrame.Characters.Text = "Disable Events"
            SelectionChange_Enabled = True
        End If
    End With
End Sub
并将所有按钮分配给
AllButtons\u单击

更新所有工作表(使用此
子项的)上的按钮帐户


您可以使用
Application.Caller
来确定什么叫做例程。你可以这样使用它

仅更新已单击的按钮

Sub AllButtons_Click()
    With ActiveSheet.Shapes(Application.Caller)
        If .TextFrame.Characters.Text = "Disable Events" Then
            .TextFrame.Characters.Text = "Enable Events"
            SelectionChange_Enabled = False
        Else
            .TextFrame.Characters.Text = "Disable Events"
            SelectionChange_Enabled = True
        End If
    End With
End Sub
并将所有按钮分配给
AllButtons\u单击

更新所有工作表(使用此
子项的)上的按钮帐户


非常感谢。我如何更新所有按钮的文本,以便在我单击一个按钮时,所有其他按钮都注册相同的更改?嗯。。。“所有按钮”我想我指的是所有分配了
allbutton\u Click
的按钮:)这太完美了,谢谢!我注意到,
SelectionChange\u Enabled
开始时是禁用的;单击按钮(按钮文本显示“禁用”)将启用该按钮。请将
SelectionChange\u启用
按启用状态启动,按钮文本显示“禁用”,然后第一次单击将其禁用。公共
BOOL
的默认值为
FALSE
,因此
SelectionChange\u启用
自然启动为禁用(FALSE)。我看到两个选项1)添加一个调用click sub的
Workbook\u Open
。这将切换
SelectionChange\u Enabled
,并设置按钮文本。2) 将您的标志的含义更改为
选择Change_Disabled
(Disabled=False,=Enabled),并在VBE中设置默认按钮文本。这样就不需要启动操作。谢谢。我如何更新所有按钮的文本,以便在我单击一个按钮时,所有其他按钮都注册相同的更改?嗯。。。“所有按钮”我想我指的是所有分配了
allbutton\u Click
的按钮:)这太完美了,谢谢!我注意到,
SelectionChange\u Enabled
开始时是禁用的;单击按钮(按钮文本显示“禁用”)将启用该按钮。请将
SelectionChange\u启用
按启用状态启动,按钮文本显示“禁用”,然后第一次单击将其禁用。公共
BOOL
的默认值为
FALSE
,因此
SelectionChange\u启用
自然启动为禁用(FALSE)。我看到两个选项1)添加一个调用click sub的
Workbook\u Open
。这将切换
SelectionChange\u Enabled
,并设置按钮文本。2) 将您的标志的含义更改为
选择Change_Disabled
(Disabled=False,=Enabled),并在VBE中设置默认按钮文本。这样就不需要启动操作。
Sub AllButtons_Click2()
    Dim shp As Button
    Dim sh As Worksheet

    SelectionChange_Enabled = Not SelectionChange_Enabled
    For Each sh In ThisWorkbook.Worksheets
        For Each shp In sh.Buttons
            If shp.OnAction = ThisWorkbook.Name & "!AllButtons_Click2" Then
                If SelectionChange_Enabled Then
                    shp.Caption = "Disable Events"
                Else
                    shp.Caption = "Enable Events"
                End If
            End If
        Next
    Next

End Sub