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

最佳答案

有一种方法,
install Autoit
然后做:

au3 = WIN32OLE.new("AutoItX3.Control")
au3.ControlClick("MessageBox Title",'', 'OK')

关于ruby - 自动确认Excel VBA代码中的Msgbox,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9011892/

10-11 02:21