如何在Application.OnKey中使用方括号? (Excel VBA)

时间:2017-03-27 21:38:48

标签: excel vba excel-vba keyboard-shortcuts hotkeys

我想使用组合键 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中删除了此功能。但是,如果有人能想出办法让它发挥作用,我将不胜感激!

1 个答案:

答案 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

  

加号" +",插入" ^",百分号"%",代字号"〜",和   括号"()"都具有特殊意义,必须包含在内   大括号" {}"。方括号" []"也必须用括号括起来   虽然它们没有特别的意义。指定大括号字符   他们自己,使用" {{}"和" {}}"。