Mat*_*ega 6 excel vba batch-file excel-vba
我的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而无需更改?
首先,当您启动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,但是只有你有空格.
| 归档时间: | 
 | 
| 查看次数: | 68784 次 | 
| 最近记录: |