2017-08-11 138 views
0

我有以下VBA:如何將參數從vba傳遞給vbs(VBScript)?

Sub StartVbs(sVbsPathNmExt) 
Shell "Explorer.exe """ & sVbsPathNmExt & """", 1  
End Sub 

而下面的VBScript ParamPassTest.vbs:

MsgBox("Hello x")  
WScript.quit 

它顯示消息 「你好x」 如果我這樣稱呼它從VBA:

Sub do_StartVbs() 
    Call StartVbs("Z:\somepath\ParamPassTest.vbs") 
End Sub 

如何將V中的「x」作爲參數傳遞給VBS?

我想這兩種方法在這裏和他們要麼錯誤或導致我的反病毒關掉一切: passing argument from vba to vbs

而不是鬆開我的反病毒規則,我怎麼傳遞的參數,從一個VBS VBA?

+0

確實[這](https://stackoverflow.com/a/2806731/1188513)不回答你的問題? –

+0

那麼把它寫入文本文件而不是參數?好吧,我想這個工作也是如此。謝謝! – mountainclimber

+0

當您在Slai的答案中迴應時:您的反病毒是問題,而不是代碼...您需要將您的Macro-Spreadsheet列入白名單,然後您需要將您的VBS文件列入白名單。我不確定您使用的是哪種AV產品,但如果根據文件的散列列出白名單,則可能必須在每次保存時將其列入白名單。 –

回答

2

可以在VBA試試這個:

Shell "WScript ""C:\path\1.vbs"" 123" 

而這1.vbs文件:

If WScript.Arguments.Count > 0 Then MsgBox WScript.Arguments(0) 
+0

試過了。我懷疑這是「有效」,但我的防病毒每次都會對它進行覈准。感謝您的嘗試! +1 – mountainclimber