У мене є наступний біт ruby код, який працює відмінно
require "WIN32OLE"
excel = WIN32OLE.new("Excel.Application")
excel.visible = true
path = Dir.pwd + "Testargs.xlsm"
excel.workbooks.open(path)
excel.run("IdontTakeargs")
Де IdontTakeargs є макросом у робочій книзі Testargs.xlsm.
Якщо я спробую викликати макрос, який приймає аргументи, тобто:
excel.run("Itakeargs(1)")
Цей код також запускається, але з якоїсь причини він двічі запускає макрос. Вищезгаданий snytax є деяким припущенням, оскільки я не можу знайти приклад виклику макросу з аргументами.
Будь-яка допомога з правильним синтаксисом може бути або навіть якщо це те, що я намагаюся виконати, навіть можливе (викликайте макрос, який приймає аргументи з ruby.)
Відповіді:
1 для відповіді № 1Синтаксис передавати аргумент макросу VBA
excel.run("Itakeargs", "1")
Проте спостережувана (і репродуцируемая) поведінка є дещо дивною.
0 для відповіді № 2
Щоб виключити дурну можливість, ви не мали свого нового коду
require "WIN32OLE"
excel = WIN32OLE.new("Excel.Application")
excel.visible = true
path = Dir.pwd + "Testargs.xlsm"
excel.workbooks.open(path)
excel.run("IdontTakeargs")
excel.run("Itakeargs(1)")
ти? Якщо ви зробили це, поясніть, чому було запущено два макроси!