如何从Matlab中调用Excel中的Excel宏?

时间:2015-08-25 23:24:05

标签: matlab excel-vba com vba excel

我想从Matlab调用Excel中的Excel宏或VBA函数。该怎么做呢?我想我应该用

创建一个句柄
filename = './sampleWorkbook';
Excel = actxserver('Excel.Application');
workbook = Excel.Workbooks.Open(filename);

然后我该如何继续调用该Excel工作簿文件名中的VBA函数?

2 个答案:

答案 0 :(得分:3)

你快到了。打电话给Application.Run("macroname")你应该没问题。确保macroname位于Excel工作簿中的VBA Module中,且Public范围为filename = './sampleWorkbook'; Excel = actxserver('Excel.Application'); workbook = Excel.Workbooks.Open(filename); Excel.Application.Run("macroname");

Application.Run

以下是defaultCloseOperationhttps://msdn.microsoft.com/en-us/library/office/ff197132.aspx

的MSDN文档链接

答案 1 :(得分:1)

我找到了答案,非常接近joehanna所拥有的,但是使用正确的Matlab格式的Run命令并关闭之前打开的工作簿并释放activeX服务器。

filename = 'C:\Book1.xlsm';
excel = actxserver('Excel.Application');
%excel.Visible = 1;
excel.Workbooks.Open(filename);
retval = excel.Run('trial');
excel.Workbooks(1).Close
excel.Quit
excel.release