Ich habe Code auszuführen, wie folgt:VBA Shell-Befehl auszuführen, sondern aus anderen Verzeichnis
ChDir (ActiveWorkbook.Path)
ShellString = "cmd.exe /k cpdf -split " + Chr(34) + ".\" + Replace(File, ".csv", ".pdf") + Chr(34) + " -o temp/x_%%%.pdf"
Shell ShellString, vbNormalFocus
Wenn ich den Code ausführen, es tut nichts, weil es nicht cpdf.exe finden.
Cpdf.exe existiert im selben Pfad wie meine Active Workbook. Der Befehl ChDir hat den Trick nicht ausgeführt.
Wenn ich den Code ausführen, bekomme ich
'CPDF' nicht als ein interner Befehl erkannt wird ....
Und ich bin an der folgenden Eingabeaufforderung links:
C: \ Benutzer \ ksmith \ Dokumente
Das sagt mir, dass der Befehl versuchte, aus diesem Ordner auszuführen, und deshalb ist es fehlgeschlagen.
Wie kann ich Shell von gewünschten Ordner in VBA ausführen? ChDir scheint nicht den Trick zu tun, wie einige Leute vorgeschlagen hatten ...
Können Sie den vollständigen Pfad zu der ausführbaren Datei in der Befehlszeile angeben vermeiden so den Wechsel von Verzeichnis? Möglicherweise von der Kommandozeile aus arbeiten, bevor Sie in vba übersetzen? Dann immer die Möglichkeit, mit der BATCH-Datei zu arbeiten. – QHarr
Ist Ihre Arbeitsmappe auf dem Laufwerk C:? Oder eine andere Fahrt? (Wenn sich Ihre Arbeitsmappe beispielsweise in "L: \ Temp1 \ Temp2" befindet, dann müssen Sie auch "ChDrive" L "' für "ChDir" verwenden, da die o/s das "aktuelle" Verzeichnis verfolgen auf jedem Laufwerk und der Standardwert ist, das "aktuelle" Verzeichnis auf dem "aktuellen" Laufwerk zu verwenden.) – YowE3K
cool. Ich werde versuchen, Sie wissen zu lassen. Arbeitsmappe befindet sich auf Netzwerklaufwerk. – Kam