Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 在Excel VBA代码中自动确认Msgbox_Ruby_Excel_Win32ole_Vba - Fatal编程技术网

Ruby 在Excel VBA代码中自动确认Msgbox

Ruby 在Excel VBA代码中自动确认Msgbox,ruby,excel,win32ole,vba,Ruby,Excel,Win32ole,Vba,我正在使用ruby和WIN32OLE,通过windows调度器自动执行Excel宏 我所有这些都正常工作。我的问题是必须运行嵌入外部方excel文件中的宏(即我无法控制宏)。我可以毫无问题地调用宏,但是代码包含用户提示(以Msgbox语句的形式) 简而言之,如何通过WIN32OLE告诉msgbox“是”或“确定” 我试过的 事件处理:Msgbox不会引发工作表事件。我不得不认为windows会在Msgbox的某个地方抛出一个事件(但我没有足够的技能用WIN32OLE捕获它) -线程和发送键:

我正在使用ruby和WIN32OLE,通过windows调度器自动执行Excel宏

我所有这些都正常工作。我的问题是必须运行嵌入外部方excel文件中的宏(即我无法控制宏)。我可以毫无问题地调用宏,但是代码包含用户提示(以
Msgbox
语句的形式)

简而言之,如何通过WIN32OLE告诉
msgbox
“是”或“确定”

我试过的

  • 事件处理:Msgbox不会引发工作表事件。我不得不认为windows会在Msgbox的某个地方抛出一个事件(但我没有足够的技能用WIN32OLE捕获它)
-线程和发送键:我也无法让msgbox响应发送键。更大的问题是,我无法让线程与Win32 OLE对象一起工作(当我使用puts和SLEEP模拟宏运行时,它工作得很好)

似乎我一直在将代码复制到另一个工作簿并删除msgbox语句,我真的不想这样做,因为这样每当第三方代码的业务逻辑发生变化时,它都会添加维护工作。

这里有一种方法, 然后做:

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