visual vbnormalfocus una personalizada para llamar guardar funciones funcion ejemplos ejecutar desde como codigos codigo excel vba excel-vba shell command-line

vbnormalfocus - Ejecute un comando en el símbolo del sistema usando excel VBA



funciones vba excel pdf (1)

Tengo un comando fijo que necesito pasar al símbolo del sistema usando VBA y luego el comando debería ejecutarse. por ejemplo, "perl a.pl c: / temp"

siguiente es el comando que estoy tratando de usar, pero simplemente abre el símbolo del sistema y no ejecuta el comando.

Call Shell("cmd.exe -s:" & "perl a.pl c:/temp", vbNormalFocus)

Por favor, compruebe.


El parámetro S no hace nada por sí mismo.

/S Modifies the treatment of string after /C or /K (see below) /C Carries out the command specified by string and then terminates /K Carries out the command specified by string but remains

Pruebe algo así en su lugar

Call Shell("cmd.exe /S /K" & "perl a.pl c:/temp", vbNormalFocus)

Es posible que ni siquiera necesite agregar "cmd.exe" a este comando a menos que desee abrir una ventana de comandos cuando se ejecute. Shell debería ejecutar el comando por sí mismo.

Shell("perl a.pl c:/temp")



-Editar-
Para esperar a que termine el comando, tendrá que hacer algo como @Nate Hekman muestra en su respuesta here

Dim wsh As Object Set wsh = VBA.CreateObject("WScript.Shell") Dim waitOnReturn As Boolean: waitOnReturn = True Dim windowStyle As Integer: windowStyle = 1 wsh.Run "cmd.exe /S /C perl a.pl c:/temp", windowStyle, waitOnReturn