如何在matlab脚本中为activex Spreadsheet11设置事件?

时间:2013-11-12 09:28:22

标签: matlab activex

我遇到了activex owc11.Spreadsheet.11。

的问题

在我的Matlab脚本中,我将activex声明为:

CONTROL='OWC11.SPREADSHEET.11';
positions=[10,10,10,10];
handles.activex1=actxcontrol(CONTROL,[positions], myFigHandle);

我想控制一些事件,比如'SheetChange'和'EndEdit',将这些事件与子功能相关联(@subfunctionSheetChange,@ subfunctionEndEdit)。

我尝试使用此代码:

handles.activex1.registerevents({'SheetChange', '@subfunctionSheetChange'});
handles.activex1.registerevents({'EndEdit', '@subfunctionEndEdit'});

..但我只能达到这个目的:

  

???使用==>错误comeventcallback(在线....)   将事件'SheetChange'触发到MainFunction(@subfunctionSheetChange)

时出错

我该如何解决?请帮帮我

1 个答案:

答案 0 :(得分:1)

来自docs

eventhandler参数可以是指定事件处理函数名称的字符串,也可以是映射到该函数的函数句柄。

你好像把function-handle和函数名混合成了两个都不是的字符串。 你应该能够使用函数句柄:

% function-handles - not strings:
handles.activex1.registerevents({'SheetChange', @subfunctionSheetChange});
handles.activex1.registerevents({'EndEdit', @subfunctionEndEdit});

或函数名称:

% mind: no "@"-prefix
handles.activex1.registerevents({'SheetChange', 'subfunctionSheetChange'});
handles.activex1.registerevents({'EndEdit', 'subfunctionEndEdit'});