VBA:来自一个cmd.exe的多个命令

我想运行VBA脚本,将执行特定的shell程序与从Excel电子表格中检索的参数。

我想对spredsheet中的n行执行n次命令,但是将其全部放在一个cmd.exe窗口中。 这是可以实现的吗?

我正在做这样的步骤:

1.创buildshell对象:

Set wsh = VBA.CreateObject("WScript.Shell") 

2.遍历Spreadsheet中的所有行并调用它们:

 wsh.Run("Command with row specific args", 1, true) 

因此,我有n个控制台窗口打开n处理行。 有什么办法可以避免吗?

帮助赞赏。

你没有提供太多的细节,但是一个解决scheme可能是用你需要的所有参数构build一个批处理(.bat)文件(与写入任何其他文本文件没有区别),将它保存在某个地方,然后在一个单独的地方运行调用cmd.exe。 然后你可以删除那个文件。


从打开输出文件开始:

 Dim fn As Long fn = FreeFile Open "filename.bat" For Output As #fn 

然后遍历你的范围,而不是每个启动一个cmd.exe,写入到您打开的文件:

 Print #fn "command with row specific args" 

然后closures你的文件并运行它:

 Close #fn Set wsh = VBA.CreateObject("WScript.Shell") wsh.Run("filename.bat", 1, true) 

那么你可以放弃这个文件:

 Kill "filename.bat"