2010-01-26 68 views
10

Application.Run “MyWorkBook.xls!宏1”在Excel VBA中使用Application.Run当工作簿的名称中包含空格

将工作(运行名为Macro1的宏在MyWorkBook.xls文件)

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

不会(如果工作簿名称中包含空格,Excel表示“无法找到宏”)。

我只花了几个小时搞清楚,这是造成这个问题的空间......

有没有办法解决,而不重命名文件?

回答

21

使用周围的文件名的单引号:

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

辉煌,谢谢! – Laurent 2010-01-26 00:47:04

+1

我的荣幸。我一直在那里':)' – 2010-01-26 00:58:00

+0

一般来说,在Excel中处理文件名时最好总是使用引号 – Ahmad 2010-11-16 11:46:24

6

替换每个空间与%20

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

这实在是一个评论,而不是问题的答案。您可以随时对自己的帖子发表评论,一旦您拥有足够的[声望](http://stackoverflow.com/faq#reputation),您将可以[对任何帖子发表评论](http://stackoverflow.com/特权/评论)。 – 2012-08-18 09:18:14

+8

我知道这是很久以前的事情,但我认为这是一个非常有效的答案。 – 2013-04-13 17:32:05

+0

是的,这绝对是一个问题的答案,而不是一个评论,@ClaricPWI在这里只是错误 – cowls 2014-03-27 13:51:04

1

这里FILE_NAME是您要打电话给你的文件的名称宏观

  • Application.ru N“‘‘+ FILE_NAME +’’” +“!宏”
  • 单在双引号之间的报价,随后+ FILE_NAME +单引号在双引号+在双引号之间的宏名之间。
相关问题