2013-04-12 47 views
3

我正在寫一個VBA宏將一個字符串發送到命令行象下面這樣:發送鍵從VBA CMD線失去特殊鍵

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

但問題來了特殊鍵一樣(和+迷失在翻譯;在命令行結束了象下面這樣:

SELECT edr.VersionName ' ' edr.BuildName 

如何防止這些特殊字符從進程中喪失

回答

3

你可以得到「+」符號展現出來?通過使用該字符串:

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

在VBA的SendKeys功能,「+」符號被用來指示{SHIFT}鍵。所以,{SHIFT} =,實際上是'+'符號;至少在我的鍵盤上。

使用該邏輯,'+9'和'+0'應該給你'('和')',但我還沒有得到那些工作。

編輯

好吧,你可以得到括號展現出來,但你種得包括他們兩次:

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

再次,要記住,上面的字符串工程我的鍵盤(標準英語)。如果您使用的是不同的鍵盤佈局,「+」號後面的字符很可能會有所不同。

3

事實上,我發現了另一種顯示這些特殊字符的方式,通過用{}括起來,它會顯示在我的命令行中。謝謝您的幫助!