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

标签 vba excel keyboard-shortcuts hotkeys

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

最佳答案

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

The plus sign "+", caret "^", percent sign "%", tilde "~", and parentheses "()" all have special meanings and must be enclosed within braces "{}". Square brackets "[]" must also be enclosed within braces although they have no special meaning. To specify brace characters themselves, use "{{}" and "{}}".

关于vba - 如何在 Application.OnKey 中使用方括号? (Excel VBA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43056916/

相关文章:

visual-studio-2010 - 如何折叠 Visual Studio 中的所有类大纲

string - 如何迭代字符串并检查每个字符的字节值?

java - Apache POI字符串公式错误

android - Android Studio 中隐藏 Activity 工具窗口的快捷方式是什么?

oracle - 由于系统错误 193 : (Oracle in instant client_11_2, C :\. ..\SQORA32.dll),无法加载 VBA ODBC Oracle 指定的驱动程序

excel - vba中的范围大小有限制吗?

c++ - QInputDialog - 用回车键确认

vba - 使用 VBA 从不同的工作表进行 Vlookup

excel - 如何从换行的文本单元格中提取特定的文本行?

vba - 如果主题带有星号,Outlook 电子邮件存档宏将不起作用