首页 > 解决方案 > 在 Excel 中为 SpinButton 分配键盘快捷键

问题描述

我已将 Spinbutton 链接到单元格列表(每个单元格中具有不同的值)。Spinbutton 的效果非常好,我希望能够有一个键盘快捷键,它会根据键盘快捷键自动向上或向下更改 spinbutton。如果有一种方法我可以调用此代码也可以。

Private Sub SpinButton1_SpinDown()
If Me.ComboBox1.ListIndex = Me.ComboBox1.ListCount - 1 Then Exit Sub
Me.ComboBox1.ListIndex = Me.ComboBox1.ListIndex + 1
End Sub

Private Sub SpinButton1_SpinUp()
If Me.ComboBox1.ListIndex = 0 Then Exit Sub
Me.ComboBox1.ListIndex = Me.ComboBox1.ListIndex - 1
End Sub

在此处输入图像描述

标签: excelvbakeyboard-shortcuts

解决方案


假设您的 Spinbutton 位于代号为 Sheet1 的工作表中,那么您可以在 ThisWorkbook 对象代码模块中包含以下内容:

Private Sub Workbook_Open()

    'Set keyboard shortcuts
    Application.OnKey "^%{DOWN}", "Sheet1.SpinButton1_SpinDown"
    Application.OnKey "^%{UP}", "Sheet1.SpinButton1_SpinUp"
    Msgbox "Keyboard shortcuts are now active."

End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    
    'Reset keyboard shortcuts
    Application.OnKey "^%{DOWN}", ""
    Application.OnKey "^%{UP}", ""
    
End Sub

提醒:

SHIFT = +(加号)

CTRL = ^(插入符号)

ALT = %(百分号)

更多细节

这样,每次打开工作簿时,都会在关闭工作簿时分配和删除快捷键。快捷键 Ctrl+Alt+UpArrow 将调用 SpinUp 过程,而 Ctrl+Alt+DownArrow 将调用 SpinDown 过程。

请注意,工作表的代码名称与工作表名称不同。工作表的代号始终位于项目浏览器窗口的左侧:

在此处输入图像描述


推荐阅读