Ich möchte Excel ausführen, eine bestimmte Datei darin öffnen und Argumente an diese Datei übergeben. Mein Anruf ist
"C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE"
"D:\Desktop\libs\xlam\+apps\+diagramViewer\diagramViewer.xlsm"
/e"D:\Desktop\MyFile.dia"
und das läuft so wie ich es will.
Wenn der Excel-Dateiparameter (MyFile.dia) jedoch ein Leerzeichen enthält, ist alles ruiniert, unabhängig von den Anführungszeichen. Die Fehlermeldung lautet, dass "File.dia" nicht gefunden werden kann.
Wie kann ich das lösen? Die MS-Hilfe hilft nicht.
BEARBEITEN:
Als Reaktion auf Daves Kommentare versuchte ich:
"C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE"
"C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE" "D:\Desktop\libs\xlam\+apps\+diagramViewer\diagramViewer.xlsm"
"C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE" "D:\Desktop\libs\xlam\+apps\+diagramViewer\diagramViewer.xlsm" "D:\Desktop\MyFile.dia"
"C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE" "D:\Desktop\libs\xlam\+apps\+diagramViewer\diagramViewer.xlsm" "D:\Desktop\MyFile .dia"
und alle arbeiten in Ordnung. Das Problem beginnt, wenn ich versuche, das einzuschließen /e
Wechseln Sie, um Argumente an Excel zu übergeben. Nämlich ...
"C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE" "D:\Desktop\libs\xlam\+apps\+diagramViewer\diagramViewer.xlsm" /e "D:\Desktop\MyFile.dia"
"C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE" "D:\Desktop\libs\xlam\+apps\+diagramViewer\diagramViewer.xlsm" /e "D:\Desktop\MyFile. dia"
Diese erzeugen keinen Fehler, das Problem ist, dass Excel nicht versteht, dass die letzte Datei etwas ist, das ich an die xlsm-Datei übergeben möchte und nicht an eine andere Datei, die in Excel geöffnet werden soll. Um Excel mitzuteilen, dass .dia ein von .xlsm verarbeiteter Parameter sein soll, habe ich nur die Leerzeichen um "/ e" gelöscht. Daher
"C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE" "D:\Desktop\libs\xlam\+apps\+diagramViewer\diagramViewer.xlsm"/e"D:\Desktop\MyFile.dia"
funktioniert jedoch wie vorgesehen
"C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE" "D:\Desktop\libs\xlam\+apps\+diagramViewer\diagramViewer.xlsm"/e"D:\Desktop\MyFile .dia"
führt dazu, dass Excel versucht, die ".dia" -Datei zu öffnen, was zu einer Fehlermeldung "Die .dia-Datei existiert nicht ..." führt.
quelle
Antworten:
Der Fehler muss sein, dass Ihr Pfad nicht auf das verweist, was Sie denken, oder ein Problem mit dem Gebietsschema ist, oder wie es Zeichen erkennt ...
Ich habe gerade Folgendes erstellt
Es funktioniert erwartungsgemäß (dh ohne Fehlermeldung) an der Eingabeaufforderung und in einer BAT-Datei.
Ich vermute, dass die Datei nicht richtig referenziert ist oder dass Ihre Ländereinstellung verwirrend ist!
Um sicher zu sein (nur um es auszuschließen), finden Sie die
MyFile.dia
und benenne es umMy File . dia
im Explorer. Dann mit dem Verschiebung Halten Sie die Taste gedrückt, klicken Sie mit der rechten Maustaste auf Ihre Datei (file.dia) und wählen Sie die Option ausCopy as path
Fügen Sie dies dann als letzten Parameter in Ihren Befehl ein.
Denken Sie daran, wenn Sie diese Zeichenfolge nicht selbst erstellt und aus einer anderen Quelle kopiert und eingefügt haben, entspricht die Markierung möglicherweise nicht Ihren Vorstellungen. Es wird empfohlen, die gesamte Zeichenfolge neu zu schreiben und anschließend zu testen. Oder kopieren Sie die Zeichenfolge oben und testen Sie das, benennen Sie einfach die Pfade.
Ob
D:
Wenn es sich nicht um ein lokales Laufwerk handelt, empfehle ich das Testen mit allen Elementen auf Ihrem Desktop (oder zumindest einem lokalen Speicherort, an dem Sie keine Probleme mit dem Netzwerk oder den Berechtigungen haben).Ich habe es sogar mit ähnlicher Verzeichnisstruktur versucht und es funktioniert gut.
Bearbeiten
Ich würde auch jeden Parameter einzeln versuchen, um sicherzustellen, dass der Pfad korrekt ist. Geben Sie also in der Eingabeaufforderung Folgendes ein
"C: \ Programme (x86) \ Microsoft Office \ Office14 \ EXCEL.EXE" und drücken Sie eingeben
Dann
"D: \ Desktop \ libs \ xlam + apps + diagramViewer \ diagramViewer.xlsm" und drücken Sie eingeben
Dann
"D: \ Desktop \ MyFile.dia" und drücken Sie eingeben
Dann
"D: \ Desktop \ My File. Dia" und drücken Sie eingeben
Bearbeiten 2
Richtig, ich kann den Fehler jetzt besser sehen / verstehen, biete aber nur eine Lösung an, die Sie nicht wollen - lassen Sie keinen Leerraum zu.
Wenn ich Leerzeichen im Parameter sende, wird von Excel die folgende Meldung angezeigt (mein Parameter lautet:
e/"C:\Users\DRook\Desktop\My File . dia"
)Hinweis: Das Problem ist, dass Excel anscheinend Leerzeichen mit der Erweiterung austauscht. Daher wird unter Leerzeichen davon ausgegangen, dass dies das Ende eines Dateinamens ist und die Erweiterung erstellt.
quelle
Ich habe mir etwas ähnliches angeschaut, wollte aber ein Makro in der geöffneten XLSM-Datei verwenden, um eine automatische Ausführung durchzuführen, wenn ein Parameter übergeben wurde.
Es gibt eine lange Diskussion bei http://www.vbforums.com/showthread.php?366559-Excel-How-to-Pass-Command-Line-Parameter-DKenny-is-KING
zu diesem Thema.
Was ich getan habe, ist der Vorschlag in Beitrag # 19 (interessant, dass der VB (6) "Befehl" in Office-Anwendungen, die ich überprüft habe, nicht funktioniert). Ich verwende eine Batch-Datei, um Excel zu starten:
Dann habe ich in der Makro-Arbeitsmappe Folgendes (klicken Sie im Projekt auf die Registerkarte "Arbeitsmappe"
Das StartMyMacro ist das, was Sie automatisch erreichen möchten.
Außerdem ist Mein StartMyMacro wie folgt definiert
Wobei bei manuellem Aufruf Auto auf False gesetzt wird und bei Aufruf über das automatische Öffnen die Variable auf True gesetzt wird. Am Ende speichere ich mit Auto = True die Arbeitsmappe (tatsächlich eine neue, die während des Makros erstellt wurde) und beende dann Excel. Dadurch wird das CMD-Fenster geschlossen und die Umgebungsvariable gelöscht.
quelle
Wir sind mit ähnlichen Problemen konfrontiert. Am Ende benennen wir die xlsm-Datei um. Es gab ein Problem mit der Codierung im Dateinamen.
quelle