Excel 将宏指定给多张图纸上的按钮
如何将此宏分配给多个工作表中的按钮;即,无论按钮的名称是“按钮1”还是“按钮2”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
您可以使用
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