2009-07-14 13 views
0

Ich arbeite mit Excel 2007 und der folgende Vorschlag von dieser Seite nicht funktioniert haben:Ausgabe Arbeiten w/Relativer Pfad in Excel 2007 VBA

Workbooks.Open Filename:=ThisWorkbook.Path & "\Chapter 7 - 10 MECHANICAL.xls" 

Ich habe auch versucht, den folgenden Code w/ohne Glück und :

Workbooks.Open Filename:=app.Path & "Chapter 7 - 90 ECS 1 LLC.xls" 

die Dateien sind im gleichen Pfad wie die Arbeitsmappe mit dem Makro, so dass ich bin ratlos, was ich falsch mache.

Ich verwende Microsoft Vista.

Vielen Dank im Voraus.

+0

Welcher Fehler wird generiert? –

Antwort

0

Damit ThisWorkbook.Path funktioniert, sollte eine vorhandene Excel-Datei geöffnet sein.
Ich meine - für eine neue Arbeitsmappe (die nicht gespeichert wird) wird der Pfad leer sein.

EDIT: Ist das Makro aktiviert? Wird der von Ihnen bereitgestellte Code ausgeführt?
Ich habe versucht, mit 2 Dateien im selben Verzeichnis & der Code mit ThisWorkBook.Path & "\ myOtherFile.xls" funktioniert.

0

Versuchen Sie folgendes:

Workbooks.Open Dateiname: = ThisWorkbook.Path & application.pathseparator & "Kapitel 7 bis 10 MECHANICAL.xls"

Dies wird die richtige Schrägstrich stellen Sie sicher, verwendet wird.

Bill

0

app.Path wird den Pfad zu Excel selbst (in Program Files) zurückkehren, was nicht ist, was Sie wollen.

Sie möchten wahrscheinlich die Funktion CurDir aufrufen, die das aktuelle Verzeichnis zurückgibt.


EDIT: Am zweiten Gedanken, könnte man die CurDir Funktion nicht wollen, becausethe aktuellen Verzeichnis, wenn Sie eine Datei öffnen, nicht ändert. Wenn Sie versuchen, eine Datei im selben Ordner wie die aktuelle Arbeitsmappe zu öffnen, sollte Ihr Code funktionieren.

Stellen Sie sicher, dass ThisWorkbook die Arbeitsmappe ist, die Sie denken, dass es ist. Welchen Fehler bekommst du auch?

0

Ihre erste Codezeile ist korrekt.

Workbooks.Open Filename:=ThisWorkbook.Path & "\Chapter 7 - 10 MECHANICAL.xls" 

ThisWorkbook.path wird den Pfad zu der Arbeitsmappe zurück, wo der Code aus ausgeführt wird. Wenn die Arbeitsmappe, auf der der Code ausgeführt wird, noch nicht gespeichert wurde, wird eine leere Zeichenfolge zurückgegeben.

Versuchen diesen Code hinzugefügt, um zu sehen, was passiert:

Debug.Print ThisWorkbook.Path & "\Chapter 7 - 10 MECHANICAL.xls" 
Debug.Print ThisWorkbook.Saved 

Der Ausgang kann über betrachtet werden ‚View - Direkt-Fenster‘

1

Ich weiß, das ist ein älterer Beitrag, aber ich habe nicht Sehen Sie die endgültige Antwort gegeben und ich stieß auf das gleiche Problem. Die erste Codezeile ist korrekt, außer dass der Backslash maskiert werden muss.

einfach zu ändern

Workbooks.Open Filename:=ThisWorkbook.Path & "\Chapter 7 - 10 MECHANICAL.xls" 

zu

Workbooks.Open Filename:=ThisWorkbook.Path & "\\Chapter 7 - 10 MECHANICAL.xls" 

und Sie werden gut zu gehen.

+0

Besser 'Application.PathSeparator' anstelle von \ verwenden. –