简体   繁体   中英

Running Exe File from CMD using VBA Excel

I am trying to run a cmd line from VBA. The command line calls a createReport.exe which creates a final CSV output file using Inputfile.csv

This is what I run manually from Command prompt window:

cd C:\Users\user123\Desktop\MyReport_folder (hits enter)

createReport.exe -in=C:\Users\user123\Desktop\MyReport_folder\Inputfile.csv (hits enter)

When I run manually, it takes around 45 seconds to create final CSV output file.

When I run the same thing from VBA code, the screen says "starting the query step" and it stays on for 30 seconds, closes and doesn't create the final CSV output file.

Sub RunReport()
Application.DisplayAlerts = False

Dim strProgramName As String
Dim strArgument As String    
    
    strProgramName = "C:\Users\user123\Desktop\MyReport_folder\createReport.exe"
    strArgument = "-in=C:\Users\user123\Desktop\MyReport_folder\Inputfile.csv"

    Call Shell("""" & strProgramName & """ """ & strArgument & """", vbMaximizedFocus)

Application.DisplayAlerts = True

End Sub

在此处输入图像描述

I believe you first need to do a ChDir before calling the Shell() command, something like:

ChDir "C:\Users\user123\Desktop\MyReport_folder"
Call Shell("""" & strProgramName ...

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM