Использование Application.Run в Excel VBA, когда имя книги содержит пробелы

Application.Run "MyWorkBook.xls! Macro1"

будет работать (запустите макрос Macro1 в файле MyWorkBook.xls)

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

не будет (если имя рабочей книги содержит пробелы, Excel говорит: "макрос не найден" ).

Я просто потратил часы, выясняя, что это пространства, вызывающие эту проблему...

Есть ли способ обойти это без переименования файла?

Ответ 1

Используйте одинарные кавычки, окружающие имя файла:

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

Ответ 2

Замените каждое из пространств на %20

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

Ответ 3

Здесь Имя_файла - это имя файла, для которого вы хотите вызвать свой макрос

  • Application.run "'" + File_name + "'" + "! Macro"
  • Одиночная цитата между двойной кавычкой, за которой следует + имя_файла + одинарная цитата между двойной цитатой + имя вашего макроса между двойными кавычками.