我正在编写一个 VBA 宏,它将向命令行发送一个字符串,如下所示:
str = "SELECT (edr.VersionName + ' ' + edr.BuildName)"
RSP = Shell(Environ$("COMSPEC"), vbNormalFocus)
SendKeys str
但问题是像 ( 和 + 这样的特殊键在翻译中丢失了;命令行最终如下所示:
SELECT edr.VersionName ' ' edr.BuildName
如何防止这些特殊字符在此过程中丢失?
最佳答案
您可以使用以下字符串显示“+”符号:
str = "SELECT (edr.VersionName += ' ' += edr.BuildName)"
在 VBA 中的
SendKeys
函数中,“+”符号用于表示{SHIFT}键。所以,{SHIFT}=,实际上是“+”符号;至少在我的键盘上。使用这种逻辑,'+9' 和 '+0' 应该给你 '(' 和 ')' 但我还没有让它们工作。
编辑
好的,您可以让括号显示出来,但您必须将它们包含两次:
str = "SELECT +9" & "(edr.VersionName += ' ' += edr.BuildName)" & "+0"
再次记住,上面的字符串适用于我的键盘(标准英语)。如果您使用不同的键盘布局,“+”号后面的字符很可能会有所不同。
关于vba - 从 VBA 向 cmd 行发送 key 会丢失特殊 key ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15978896/