Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将参数从vba传递到vbs(VBScript)?_Vba_Excel_Vbscript - Fatal编程技术网

如何将参数从vba传递到vbs(VBScript)?

如何将参数从vba传递到vbs(VBScript)?,vba,excel,vbscript,Vba,Excel,Vbscript,我有以下VBA: Sub StartVbs(sVbsPathNmExt) Shell "Explorer.exe """ & sVbsPathNmExt & """", 1 End Sub 以及ParamPassTest.vbs中的以下VBScript: MsgBox("Hello x" ) WScript.quit 当我从VBA这样调用它时,它会显示一条消息“Hello x”: Sub do_StartVbs() Call StartVbs("Z

我有以下VBA:

Sub StartVbs(sVbsPathNmExt)   
 Shell "Explorer.exe """ & sVbsPathNmExt & """", 1    
End Sub
以及ParamPassTest.vbs中的以下VBScript:

MsgBox("Hello x" )    
WScript.quit
当我从VBA这样调用它时,它会显示一条消息“Hello x”:

Sub do_StartVbs()
  Call StartVbs("Z:\somepath\ParamPassTest.vbs")
End Sub
如何将“x”作为参数从VBA传递到VBS

我在这里尝试了这两种方法,它们要么出错,要么导致我的防病毒软件关闭:


如何将参数从vba传递到vbs,而不是放松防病毒规则?

您可以在vba中尝试以下操作:

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

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

您可以在VBA中尝试此操作:

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

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

没有回答你的问题?所以把它写在一个文本文件而不是一个参数中?好吧,我想那也行。谢谢正如你在Slai的回答中回答的那样:问题在于你的反病毒,而不是代码。。。您需要将宏电子表格列入白名单,然后需要将VBS文件列入白名单。我不确定您使用的是哪种AV产品,但如果它根据您文件的哈希值列出了白名单,您可能必须在每次保存时都将其列入白名单。@SteveKline-是的,我想知道是否有一种方法可以做到这一点,而不需要干扰我的AV。我想写到文本或数据库是一个足够好的解决方法。不回答你的问题吗?所以写到文本文件而不是参数?好吧,我想那也行。谢谢正如你在Slai的回答中回答的那样:问题在于你的反病毒,而不是代码。。。您需要将宏电子表格列入白名单,然后需要将VBS文件列入白名单。我不确定您使用的是哪种AV产品,但如果它根据您文件的哈希值列出了白名单,您可能必须在每次保存时都将其列入白名单。@SteveKline-是的,我想知道是否有一种方法可以做到这一点,而不需要干扰我的AV。我想写文本或数据库是一个足够好的解决方法。试试吧。我怀疑它“管用”,但我的防病毒软件每次都会用核武器。谢谢你的努力+把它烘干。我怀疑它“管用”,但我的防病毒软件每次都会用核武器。谢谢你的努力+1.