首页 > 解决方案 > vba 等待命令提示符完成?

问题描述

我有谁知道如何在继续之前等待 shell 命令完成运行?我的代码抛出“运行时错误'1004':抱歉,我们找不到 PC_one.csv。它是否可能被移动、重命名或删除”。该文件被创建并给出该错误。如果我再次运行子程序,它会打开文件。

Dim sCommandToRun As String
sCommandToRun = "systeminfo /fo csv > PC_one.csv"
Call Shell("cmd.exe /S /C" & sCommandToRun, vbHide)
Workbooks.Open ("PC_one.csv")

标签: excelvbashellcommand-promptwait

解决方案


指定文件夹和文件名。

Option Explicit

Sub info()

   Dim wsh As Object, sCommandToRun As String, Filename As String
   Set wsh = VBA.CreateObject("WScript.Shell")

   Filename = ThisWorkbook.Path & "\PC_one.csv"
   sCommandToRun = "cmd.exe /S /C systeminfo /fo CSV > """ & Filename & """"
   'Debug.Print sCommandToRun

   wsh.Run sCommandToRun, 1, 1
   Workbooks.Open Filename

   MsgBox "Done"
  
End Sub

推荐阅读