Man*_*ian 2 vbscript excel vba excel-vba
我正在研究VBA,我必须通过传递一些值来调用vbscript.
这是代码:
''VBA
'Below values are on different cells of Excel file which I am reading
'into a global variable then pass it to vbscript.
'SFilename = VBscript file path
'QClogin = "abc"
'QCpassword = "abc"
'sDomain = "xyz"
'sProject = "xyz123"
'testPathALM = "Subject\xyz - Use it!\xyz_abc"
'QCurl = "http://xxx_yyy_zzz/qcbin/"
Set wshShell = CreateObject("Wscript.Shell")
Set proc = wshShell.exec("wscript " & SFilename & " " & QClogin & _
" " & "" & QCpassword & " " & "" & sDomain & " " & "" & sProject & _
" " & "" & testPathALM & " " & "" & QCurl & "")
''VBscript on some location
Dim strUserName, strPassword, strServer
strUserName = WScript.Arguments(0) '"abc"
Msgbox "strUserName : " & strUserName
strPassword = WScript.Arguments(1) '"abc"
Msgbox "strPassword : " & strPassword
strServer = WScript.Arguments(5) '"http://xxx_yyy_zzz/qcbin/"
Msgbox "strServer : " & strServer
Dim strDomain, strProject, strRootNode
strDomain = WScript.Arguments(2) '"xyz"
Msgbox "strDomain: " & strDomain
strProject = WScript.Arguments(3) '"xyz123"
Msgbox "strProject: " & strProject
strRootNode = WScript.Arguments(4) '"Subject\xyz - Use it!\xyz_abc"
Msgbox "strRootNode: " & strRootNode
Run Code Online (Sandbox Code Playgroud)
现在,当我运行代码时,它正在将值正确地传递给vbscript:
QClogin = "abc"
QCpassword = "abc"
sDomain = "xyz"
sProject = "xyz123"
Run Code Online (Sandbox Code Playgroud)
它有这些问题:
testPathALM = "Subject\xyz - Use it!\xyz_abc"
QCurl = "http://xxx_yyy_zzz/qcbin/"
Run Code Online (Sandbox Code Playgroud)
现在,对我来说,最奇怪的是,如果我为"testPathALM"保留一个单元格,其中"subject\xyz - 使用它!\ xyz_abc"作为值,我在vbscript中正确获得"QCurl"值.
但是,如果我坚持价值"主题\ XYZ -使用它\ xyz_abc!"对于"testPathALM",然后我得到" - "为strServer其假设是"QCurl"的价值和"主题\ XYZ"的"strRootNode"这应该是"主题\ xyz - 使用它!\ xyz_abc".
我无法理解这里的问题.
非常感谢提前.
更安全地引用所有参数:
Set wshShell = CreateObject("Wscript.Shell")
Set proc = wshShell.exec("wscript """ & SFilename & """ """ & _
QClogin & """ """ & QCpassword & """ """ & _
sDomain & """ """ & sProject & """ """ & _
testPathALM & """ """ & QCurl & """")
Run Code Online (Sandbox Code Playgroud)
尝试使用debug.print来确保它看起来应该......