gpt4 book ai didi

vba - 从 Excel VBA 宏执行 .bat 文件

转载 作者:行者123 更新时间:2023-12-02 03:14:05 43 4
gpt4 key购买 nike

我的 Excel VBA 宏有问题。我需要它来执行与 Excel 工作簿位于同一文件夹中的批处理文件。该代码有时运行良好。我不知道是什么导致了错误。代码如下:

Sub writebatch()
Sheets("code").Select
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs FileName:=ThisWorkbook.path & "\code.bat",
FileFormat:=xlTextPrinter, CreateBackup:=False
Application.DisplayAlerts = True
ThisWorkbook.Saved = True
Shell "cmd.exe /k cd " & ThisWorkbook.path & "&&code.bat"
Application.Quit
End Sub

它写入批处理文件,但随后不执行它。只有一次我让命令窗口无法关闭,并且它说找不到 code.bat 文件。所以 Changedir 命令起作用了。是否可以运行cmd.exe并使用相对路径运行code.bat而无需更改dir?

最佳答案

首先,当您启动 CMD 实例时,如果您使用任何类型的运算符 (&),则需要将整个 CMD 参数括起来:

CMD /K "command1 & command2"

然后将子内部参数括起来,如下所示:

CMD /K "command "path with spaces" & command"

所以你需要做这样的事情:

Shell "cmd.exe /k ""cd " & """ & ThisWorkbook.path & """ & " && code.bat"""

请注意,我使用了“””来转义引号,但我不知道如何在 VBA 中转义引号。

PS:如果有空格,请记得将 code.bat 括起来,但仅限于有空格的情况下。

关于vba - 从 Excel VBA 宏执行 .bat 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13530371/

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