excel - 在 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
解决方案
假设您的 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 过程。
请注意,工作表的代码名称与工作表名称不同。工作表的代号始终位于项目浏览器窗口的左侧:
推荐阅读
- oracle - Oracle DB,将更新行移动到另一个表
- docker - 强制 docker 在 macOS 上默认使用 linux/amd64 平台
- c++ - 为什么内存分析器不显示所有使用的内存?
- bash - 从 csv 获取命令
- c - 在 C 中重新启动程序
- php - 如何使用 webview 查找正在加载网站的 android 应用程序
- python - 在相同的第一维上合并多个 numpy 数组
- angular - 导航到锚点,保留查询参数并且不重新加载页面
- amazon-web-services - 我怎样才能放弃一个假定的角色?
- angular - 使用角度的tone.js在两个通道中混合两个音频文件