Application.OnKey Ctrl Shift 0

时间:2016-02-06 00:52:49

标签: vba excel-vba excel

我正在尝试将宏绑定到Excel 2010(v14.0)中的组合键。

在我ThisWorkbook代码中:

Option Explicit

Private Sub Workbook_Open()
    Application.OnKey "^+1", "Foo"
    Application.OnKey "^+0", "Bar"
End Sub

Module1代码中:

Option Explicit

Sub foo()
    MsgBox "hello"
End Sub

Sub bar()
    MsgBox "world"
End Sub

当我按 CTRL + SHIFT + 1 Excel说“你好”。 当我按 CTRL + SHIFT + 0 Excel 说“世界”。

我不能让Application.OnKey使用^ + 0来处理任何宏。有没有办法做到这一点?为什么上面的代码不起作用?

2 个答案:

答案 0 :(得分:1)

除了Jeeped的回答:

Alt - H - O - U - L 取消隐藏列Excel 2016.C隐藏它们。

你可以在Jeeped的代码中替换以下内容:

Commandbars("Column").Controls("Unhide").Execute

不知道它比EntireColumn.Hidden = False有任何改进,但是到底是什么。

答案 1 :(得分:0)

您将内置菜单命令与自定义子过程等同起来。它们不能与Application.OnKey方法互换,但可以轻松创建自定义宏,以复制内置命令的功能。

在模块代码表中:

Sub myUnHideColumns()
    With Selection
        .EntireColumn.Hidden = False
        'alternate toggle visible/hidden
        '.EntireColumn.Hidden = Not .EntireColumn.Hidden
    End With
End Sub

Sub myHotKeys()
    Application.OnKey "^+0", "myUnHideColumns"
End Sub

在您的情况下,您可能希望将影响代码从myHotKeys移至Workbook_Open事件宏。