2010-01-26 38 views
10

Application.Run "MyWorkBook.xls! Macro1"Usando Application.Run en Excel VBA cuando el nombre de libro contiene espacios

funcionará (ejecutar la macro denominada Macro1 en el archivo MyWorkBook.xls)

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

no (si el nombre del libro de trabajo contiene espacios, Excel dice "no se puede encontrar la macro").

yo acabamos de pasar horas averiguar que son los espacios que causan este problema ...

¿Hay alguna forma de evitar esto sin cambiar el nombre del archivo?

Respuesta

21

Use comillas simples que rodean el nombre del archivo:

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

Brillante, gracias! – Laurent

+1

Mi placer. He estado allí ':)' –

+0

En general, sería mejor utilizar siempre las comillas cuando se trata de nombres de archivo en Excel – Ahmad

6

Reemplazar cada uno de los espacios con %20

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

Esto es realmente un comentario, no una respuesta a la pregunta. Siempre puede comentar sus propias publicaciones, y una vez que tenga suficiente [reputación] (http://stackoverflow.com/faq#reputation) podrá [comentar cualquier publicación] (http://stackoverflow.com/ privilegios/comentario). –

+8

Sé que esto es todo de hace mucho tiempo, pero creo que esta es una respuesta perfectamente válida. –

+0

Sí, esta es definitivamente una respuesta a la pregunta y no un comentario, @ClaricPWI está simplemente mal aquí – cowls

1

Aquí Nombre de archivo es el nombre del archivo para el que quiere llamar a su macro

  • Application.ru n "'" + Nombre de archivo + "'" + "! Macro"
  • Comillas simples entre comillas dobles seguidas de + Nombre de archivo + comillas simples entre comillas dobles + su nombre de macro entre comillas dobles.
Cuestiones relacionadas