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"