gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 18:34:16 29 4
gpt4 key购买 nike

我正在尝试运行 VBA 脚本,该脚本将使用从 Excel 电子表格检索的参数执行特定的 shell 程序。

我想对 spredsheet 中的 n 行执行该命令 n 次,但将所有内容都放在一个 cmd.exe 窗口中。这可以实现吗?

我正在执行以下步骤:

1.创建shell对象:

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

2.遍历电子表格中的所有行并调用每一行:

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

结果,我为 n 个已处理的行打开了 n 个控制台窗口。有什么办法可以避免吗?

感谢帮助。

最佳答案

您没有提供太多细节,但解决方案可能是使用您需要的所有参数构建一个批处理(.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"

然后关闭文件并运行它:

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

然后您可以丢弃该文件:

Kill "filename.bat"

关于VBA:来自一个 cmd.exe 的多个命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19169918/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com