如何从 Matlab 调用 Excel 中的 Excel 宏?
How can I invoke an Excel Macro in Excel from Matlab?
我想从 Matlab 在 Excel 中调用 Excel 宏或 VBA 函数。应该如何实现呢?我想我应该用
创建一个句柄
filename = './sampleWorkbook';
Excel = actxserver('Excel.Application');
workbook = Excel.Workbooks.Open(filename);
那么我应该如何继续调用 Excel 工作簿文件名中的 VBA 函数?
你快到了。拨打 Application.Run("macroname")
应该没问题。确保 macroname
在 Excel 工作簿中的 VBA Module
中并且具有 Public
范围。
filename = './sampleWorkbook';
Excel = actxserver('Excel.Application');
workbook = Excel.Workbooks.Open(filename);
Excel.Application.Run("macroname");
这是 link 到 Application.Run
的 MSDN 文档:https://msdn.microsoft.com/en-us/library/office/ff197132.aspx
我找到了答案,非常接近 joehanna 的答案,但是使用正确的 Matlab 格式的 运行 命令并关闭之前打开的工作簿并释放 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
我想从 Matlab 在 Excel 中调用 Excel 宏或 VBA 函数。应该如何实现呢?我想我应该用
创建一个句柄filename = './sampleWorkbook';
Excel = actxserver('Excel.Application');
workbook = Excel.Workbooks.Open(filename);
那么我应该如何继续调用 Excel 工作簿文件名中的 VBA 函数?
你快到了。拨打 Application.Run("macroname")
应该没问题。确保 macroname
在 Excel 工作簿中的 VBA Module
中并且具有 Public
范围。
filename = './sampleWorkbook';
Excel = actxserver('Excel.Application');
workbook = Excel.Workbooks.Open(filename);
Excel.Application.Run("macroname");
这是 link 到 Application.Run
的 MSDN 文档:https://msdn.microsoft.com/en-us/library/office/ff197132.aspx
我找到了答案,非常接近 joehanna 的答案,但是使用正确的 Matlab 格式的 运行 命令并关闭之前打开的工作簿并释放 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