3

我正在编写一个 VBA 宏,它将向命令行发送一个字符串,如下所示:

str = "SELECT (edr.VersionName + ' ' + edr.BuildName)"
RSP = Shell(Environ$("COMSPEC"), vbNormalFocus)
SendKeys str

但是问题来了,像 ( 和 + 这样的特殊键在翻译中丢失了;命令行最终如下所示:

SELECT edr.VersionName  ' '  edr.BuildName

如何防止这些特殊字符在此过程中丢失?

4

2 回答 2

3

实际上,我发现了另一种显示这些特殊字符的方法,通过用 {} 将其括起来,它将显示在我的命令行中。谢谢您的帮助!

于 2013-04-12T19:43:16.127 回答
3

您可以使用以下字符串显示“+”符号:

str = "SELECT (edr.VersionName += ' ' += edr.BuildName)"

SendKeysVBA 中的函数中,“+”符号用于表示 {SHIFT} 键。所以,{SHIFT}=,实际上是 '+' 符号;至少在我的键盘上。

使用这种逻辑,'+9' 和 '+0' 应该给你 '(' 和 ')' 但我还没有让它们工作。

编辑

好的,您可以显示括号,但您必须将它们包含两次:

str = "SELECT +9" & "(edr.VersionName += ' ' += edr.BuildName)" & "+0"

同样,请记住,上面的字符串适用于我的键盘(标准英语)。如果您使用不同的键盘布局,“+”号后面的字符很可能会有所不同。

于 2013-04-12T19:30:07.657 回答