如何对Ruby中的Excel事件做出反应?

我可以使用Rubyfind10 ^ 1000个脚本Excel的示例,但是我不能为了我的生活而弄清楚如何让Ruby对Excel中的事件做出反应。 我试图检索一个工作表中的行的内容,当它被选中,但这样一个基于事件的检索,我找不到任何方法或例子。

使用WIN32OLE_EVENT.new方法创build一个OLE事件对象,然后调用其on_event方法。 调用WIN32OLE_EVENT.message_loop方法启动事件监视循环。

下面是一个打印出所选范围值的示例,然后在保存工作簿之前暂停事件监视:

require 'win32ole' def exit_event_loop $LOOP = false end xl = WIN32OLE.connect('Excel.Application') wb = xl.ActiveWorkbook ev = WIN32OLE_EVENT.new(wb, 'WorkbookEvents') ev.on_event('SheetSelectionChange') do range = xl.Selection puts(range.Value) STDOUT.flush end ev.on_event('BeforeSave') do exit_event_loop end $LOOP = true while $LOOP WIN32OLE_EVENT.message_loop sleep 0.1 end 

希望有所帮助。