【问题标题】:How can I use square brackets in Application.OnKey? (Excel VBA)如何在 Application.OnKey 中使用方括号? (Excel VBA)
【发布时间】:2017-08-20 18:44:39
【问题描述】:

我想使用组合键 Shift + Alt + [ 在我的 VBA 项目中调用子例程。这是我尝试过的代码:

Appication.OnKey "+%[", "mySubroutine"

我在使用其他带有 shift 和 alt 的字符时没有遇到任何问题,例如小写字母和数字。但是,当我尝试使用左方括号时,出现以下错误:

Method 'OnKey' of object '_Application' failed

我还尝试将左方括号与 CtrlAltShift 的所有不同组合一起使用。它们都产生相同的错误。

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 语言,但它可以使用左方括号来设置键盘快捷键。

微软似乎在较新版本的 Excel 中删除了此功能。但是,如果有人能想办法让它工作,我将不胜感激!

【问题讨论】:

    标签: vba excel keyboard-shortcuts hotkeys


    【解决方案1】:
    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

    加号“+”、脱字符号“^”、百分号“%”、波浪号“~”和 括号“()”都有特殊含义,必须括在 大括号“{}”。方括号“[]”也必须用大括号括起来 虽然它们没有特殊含义。指定大括号字符 他们自己,使用“{{}”和“{}}”。

    【讨论】:

    • 太棒了!太感谢了! (我怎么没想到……)
    猜你喜欢
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 2023-03-22
    • 2016-12-18
    • 1970-01-01
    相关资源
    最近更新 更多