我想从Matlab调用Excel中的Excel宏或VBA函数。该怎么做呢?我想我应该用
创建一个句柄filename = './sampleWorkbook';
Excel = actxserver('Excel.Application');
workbook = Excel.Workbooks.Open(filename);
然后我该如何继续调用该Excel工作簿文件名中的VBA函数?
答案 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
以下是defaultCloseOperation
:https://msdn.microsoft.com/en-us/library/office/ff197132.aspx
答案 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