我想使用组合键 Shift + Alt + [来调用我的VBA项目中的子程序。这是我尝试过的代码:
Appication.OnKey "+%[", "mySubroutine"
我使用shift和alt的其他字符没有问题,例如小写字母和数字。但是,当我尝试使用左方括号时,我收到以下错误:
Method 'OnKey' of object '_Application' failed
我还尝试使用左方括号,其中包含所有不同的组合 Ctrl , Alt 和 Shift 。它们都会产生同样的错误。
Application.OnKey "^[", "mySubroutine"
Application.OnKey "+[", "mySubroutine"
Application.OnKey "%[", "mySubroutine"
Application.OnKey "^+[", "mySubroutine"
Application.OnKey "^%[", "mySubroutine"
Application.OnKey "^+%[", "mySubroutine"
我也尝试使用左方括号(91)的ASCII代码,如下所示:
Application.OnKey "+%{91}", "mySubroutine"
没有运气。
我还尝试使用Excel的内置Chr()函数和ASCII密钥代码:
Application.OnKey "+%" & Chr(91), "mySubroutine"
也不起作用。
我正在运行Excel 2013.我们办公室的另一台计算机运行的是Excel 2003,虽然该计算机使用的是Excel4Macro语言,但它可以使用左方括号来设置键盘快捷键。
似乎Microsoft在较新版本的Excel中删除了此功能。但是,如果有人能想出办法让它发挥作用,我将不胜感激!
答案 0 :(得分:7)
Application.OnKey "+%{[}", "mySubroutine"
与SendKeys相同的代码......
How to print or send braces ( ) using VBA sendkeys
https://social.technet.microsoft.com/wiki/contents/articles/5169.vbscript-sendkeys-method.aspx
加号" +",插入" ^",百分号"%",代字号"〜",和 括号"()"都具有特殊意义,必须包含在内 大括号" {}"。方括号" []"也必须用括号括起来 虽然它们没有特别的意义。指定大括号字符 他们自己,使用" {{}"和" {}}"。