Executando um arquivo em lote de janelas .bat do Excel VBA

2

Eu tenho um arquivo chamado newcurl.bat dentro do diretório atual em que meu arquivo excel está

Eu quero que o excelVBA execute este arquivo

Eu tentei:

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

mas apenas CD's para o caminho da pasta atual, mas não executa fisicamente o arquivo newcurl.bat

    
por Vincent Tang 05.06.2017 / 22:05

2 respostas

1

Acabei descobrindo.

Eu tinha um macrobook pessoal.xlsb, então thisworkbook.path estava fazendo referência à pasta de trabalho errada.

Acabei fazendo isso em vez disso:

Dim folderPath As String
Dim shellCommand As String

folderPath = Application.ActiveWorkbook.Path
shellCommand = """" & folderPath & "\" & "newcurl.bat" & """"
Call Shell(shellCommand, vbNormalFocus)
    
por 05.06.2017 / 22:18
0

Você errou as aspas duplas - ThisWorkbook.path é literalmente usado no comando.

Você pode ver por si mesmo, se você imprimir o comando para o console:

Dim strCommand As String
strCommand = "cmd.exe /k ""cd " & """ & ThisWorkbook.path & """ & " newcurl.bat"""
Debug.Print strCommand
Shell strCommand
    
por 05.06.2017 / 22:12