2009-07-14 7 views
0

Je travaille avec Excel 2007 et la suggestion suivante de ce site n'a pas fonctionné:Problème de travail w/chemin relatif dans Excel 2007 VBA

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

J'ai aussi essayé le code suivant w/pas de chance aussi bien :

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

les fichiers sont dans le même chemin que le classeur avec la macro, donc je suis à une perte pour ce que je fais mal.

Je cours sous Microsoft Vista.

Merci d'avance.

+0

Quelle erreur est générée? –

Répondre

0

Pour que ThisWorkbook.Path fonctionne, un fichier Excel existant doit être ouvert.
Je veux dire - pour un nouveau classeur (qui n'est pas sauvegardé), le chemin sera vide.

EDIT: La macro est-elle activée? Est-ce que le code que vous avez fourni fonctionne?
J'ai essayé avec 2 fichiers dans le même dossier & le code avec ThisWorkBook.Path & "\ myOtherFile.xls" fonctionne.

0

Essayez ceci:

Workbooks.Open Nom du fichier: = ThisWorkbook.Path & application.pathseparator & "Chapitre 7 - 10 MECHANICAL.xls"

Cela fera en sorte la barre oblique appropriée est utilisé.

Bill

0

app.Path retourne le chemin vers Excel lui-même (dans Program Files), ce qui est pas ce que vous voulez.

Vous souhaitez probablement appeler la fonction CurDir, qui retournera le répertoire en cours.


EDIT: la réflexion, vous voudrez peut-être pas la fonction CurDir, becausethe répertoire courant ne change pas lorsque vous ouvrez un fichier. Si vous essayez d'ouvrir un fichier dans le même dossier que le classeur en cours, votre code devrait fonctionner.

Assurez-vous que ThisWorkbook est le classeur que vous pensez être. Aussi, quelle erreur obtenez-vous?

0

Votre première ligne de code est correcte.

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

ThisWorkbook.Path retourne le chemin vers le classeur où le code est exécuté à partir.

Si le classeur qui exécute le code n'a pas encore été enregistré, il renvoie une chaîne vide.

Essayez d'ajouter ce code pour voir ce qui se passe:

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

La sortie peut être consulté via « View - Fenêtre immédiate »

1

Je sais que c'est un ancien poste, mais je ne l'ai pas voir la réponse finale donnée et j'ai rencontré le même problème. La première ligne de code est correcte sauf que la barre oblique inverse doit être échappée.

changer simplement

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

à

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

et vous serez bon d'aller.

+0

Mieux vaut utiliser 'Application.PathSeparator' au lieu de \. –

Questions connexes