Vba Application.OnKey Ctrl-Shift 0

Vba Application.OnKey Ctrl-Shift 0,vba,excel,Vba,Excel,我正在尝试将宏与Excel2010(v14.0)中的一个组合键绑定 在本工作簿中代码中,我: Option Explicit Private Sub Workbook_Open() Application.OnKey "^+1", "Foo" Application.OnKey "^+0", "Bar" End Sub 在模块1中代码: Option Explicit Sub foo() MsgBox "hello" End Sub Sub bar() M

我正在尝试将宏与Excel2010(v14.0)中的一个组合键绑定

本工作簿中
代码中,我:

Option Explicit

Private Sub Workbook_Open()
    Application.OnKey "^+1", "Foo"
    Application.OnKey "^+0", "Bar"
End Sub
模块1中
代码:

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。有办法做到这一点吗?为什么上面的代码不起作用?

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

在模块代码表中:

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
移动到事件宏。

除了Jeeped的答案之外:

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

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

命令栏(“列”)。控件(“取消隐藏”)。执行


我不知道这比
entireclumn.Hidden=False有什么改进,但见鬼。

你完全忽略了我的问题,指示我做一些不起作用的事情。“Ctrl+Shift+0有什么诀窍吗?它完全不可用吗?为什么?”很抱歉听到您无法实现这一点。我不发布未经测试的代码。祝你的项目好运。我很想知道你的系统配置,因为我在3台不同的计算机上完全实现了你说的,但它们都不起作用。