2010-01-26 13 views
10

Application.Run "MyWorkBook.xls! Macro1"Utilizzando Application.Run in Excel VBA quando il nome della cartella di lavoro contiene spazi

funzionerà (eseguire la macro denominata Macro1 nel file MyWorkBook.xls)

Application.Run "My Work Book.xls!Macro1" 

non (se il nome della cartella di lavoro contiene spazi, Excel dice "la macro non può essere trovata").

Ho appena trascorso ore per capire che si tratta di spazi che causano questo problema ...

Esiste un modo per aggirare questo senza rinominare il file?

risposta

21

Usa virgolette singole che circondano il nome del file:

Application.Run "'My Work Book.xls'!Macro1" 
+0

Brillante, grazie! – Laurent

+1

Piacere mio. Sono stato lì ':' –

+0

In generale, sarebbe meglio usare sempre le virgolette quando si ha a che fare con nomi di file in Excel – Ahmad

6

Sostituire ciascuno degli spazi con %20

Application.Run "My%20Work%20Book.xls!Macro1" 
+0

Questo è davvero un commento, non una risposta alla domanda. Puoi sempre commentare i tuoi post e, una volta che hai [reputazione] sufficiente (http://stackoverflow.com/faq#reputation), sarai in grado di [commentare qualsiasi post] (http://stackoverflow.com/ privilegi/commento). –

+8

So che questo è tutto da molto tempo fa, ma penso che questa sia una risposta perfettamente valida. –

+0

Sì, questa è sicuramente una risposta alla domanda e non un commento, @ClaricPWI è solo sbagliato qui – cowls

1

Qui Nome_file è il nome del file per il quale si desidera chiamare il tuo macro

  • Application.ru n "'" + File_name + "'" + "! Macro"
  • Quote singole tra virgolette seguite da + Nome file + virgoletta singola tra virgolette + nome macro tra virgolette.
Problemi correlati