Ответ 1
Используйте одинарные кавычки, окружающие имя файла:
Application.Run "'My Work Book.xls'!Macro1"
Application.Run "MyWorkBook.xls! Macro1"
будет работать (запустите макрос Macro1 в файле MyWorkBook.xls)
Application.Run "My Work Book.xls!Macro1"
не будет (если имя рабочей книги содержит пробелы, Excel говорит: "макрос не найден" ).
Я просто потратил часы, выясняя, что это пространства, вызывающие эту проблему...
Есть ли способ обойти это без переименования файла?
Используйте одинарные кавычки, окружающие имя файла:
Application.Run "'My Work Book.xls'!Macro1"
Замените каждое из пространств на %20
Application.Run "My%20Work%20Book.xls!Macro1"
Здесь Имя_файла - это имя файла, для которого вы хотите вызвать свой макрос