【问题标题】:How can I invoke an Excel Macro in Excel from Matlab?如何从 Matlab 调用 Excel 中的 Excel 宏?
【发布时间】:2015-11-19 20:21:03
【问题描述】:

我想从 Matlab 调用 Excel 中的 Excel 宏或 VBA 函数。应该如何做到这一点?我想我应该用

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

那么我应该如何继续在该 Excel 工作簿文件名中调用 VBA 函数?

【问题讨论】:

    标签: matlab excel com vba


    【解决方案1】:

    你快到了。打电话给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 的 MSDN 文档链接:https://msdn.microsoft.com/en-us/library/office/ff197132.aspx

    【讨论】:

    • 谢谢你,乔汉娜。我也找到了 Excel.Application.Run 命令。格式 Excel.Application.Run "macroname";虽然在 Matlab 中不起作用。它必须是 Excel.Application.Run('macroname');
    • 太棒了!我会为未来的访客更新我的答案。
    【解决方案2】:

    我找到了答案,非常接近 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-07
      • 1970-01-01
      • 1970-01-01
      • 2011-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-01
      相关资源
      最近更新 更多