工作表上的多个切换button可以触发一个macros
我有20个切换button设置
Public Sub ToggleButton1_Click() Check_All If ToggleButton1.value = True Then ToggleButton1.BackColor = vbGreen Else: ToggleButton1.BackColor = vbRed End If End Sub
Public Sub ToggleButton2_Click() Check_All If ToggleButton2.value = True Then ToggleButton2.BackColor = vbGreen Else: ToggleButton2.BackColor = vbRed End If End Sub
我试图让他们触发application.onkey,如:
Application.OnKey "%a", "Sheet1.ToggleButton1_Click" Application.OnKey "%b", "Sheet1.ToggleButton2_Click"
当所有button都为“真”时,使用Check_all将执行以下操作,在触发另一个“macros”之前将切换button恢复到“假”状态。
Sub Check_All() Dim tb As Object For Each tb In Me.OLEObjects If tb.ProgId = "Forms.ToggleButton.1" Then If tb.Object.value <> True Then Exit Sub End If Next CommandButton0_Click End Sub
Private Sub CommandButton0_Click() Dim x As Integer For x = 1 To 20 Worksheets("Sheet1").OLEObjects("ToggleButton" & x).Object.value = False Next x CommandButton3_Click End Sub
但我似乎无法得到application.onkey的工作,我现在完全失去了。
这是一个连接到可编程USBbutton的系统,我真的依靠onkeyfunction,除非有更好的方法?
您可以将macros分配给Excel中的快捷键。 您需要模拟切换button点击,如下所示:
Sub CtrlShiftA() ToggleButton1.Value = Not ToggleButton1.Value End Sub
然后有你的切换button子,只要你喜欢:
Private Sub ToggleButton1_Click() If ToggleButton1.Value = True Then ToggleButton1.BackColor = vbGreen Else ToggleButton1.BackColor = vbRed End If End Sub
然后在查看 – >macros – >查看macros点击选项..:
按下Shift + A
将Ctrl + Shift + A
作为快捷键:
现在点击确定,并享受你的shurtcut键。