我正在使用 ruby a WIN32OLE 来使用 Windows 调度程序自动执行 Excel 宏。
我让所有这些都正常工作。我的问题在于必须运行嵌入在外部方的 excel 文件中的宏(即我无法控制宏)。我可以毫无问题地调用宏,但是代码包含用户提示(以Msgbox
语句的形式)
简而言之,我如何msgbox
通过 WIN32OLE 告诉“是”或“确定”?
我试过的
- 事件处理:Msgbox 不会引发工作表事件。我不得不认为 Windows 会在某处为 Msgbox 抛出一个事件(但我不够熟练,无法用 WIN32OLE 捕获它)
-Threading 和 Sendkeys:我也无法让 msgbox 响应 sendkeys。更大的问题是我无法让线程与 WIN32OLE 对象一起工作(当我使用 puts 和 sleeps 来模拟宏运行时它工作得很好。)
看来我坚持将代码复制到另一个工作簿并删除 msgbox 语句,我真的不想这样做,因为每次第 3 方代码的业务逻辑发生更改时,它都会增加维护工作。