主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

安装和使用 Function Wizard

MATLAB® Compiler™ 提供的 Function Wizard 加载项提供了一个控制面板,您可以在 Microsoft® Excel® 中使用一个或多个 MATLAB CompilerExcel 加载项创建自定义 Excel 宏。生成的宏由 Microsoft Visual Basic® for Applications (VBA) 代码组成,您可以修改该代码以进行其他自定义。要使用该向导,您不需要具备 VBA 编程知识。

Function Wizard 使您能够创建 Excel 宏,指定已编译的 MATLAB 函数的数据在工作表中的放置和输出。您将 Excel 工作表值传递给已编译的 MATLAB 模型,然后将模型输出返回到工作表中的单元格或单元格范围。使用 Function Wizard 处理具有结构体数组参量或多个输出的 MATLAB 函数。

有关使用 Function Wizard 创建 Excel 宏的完整示例,请参阅使用多个 MATLAB 函数创建宏

安装 Function Wizard

在 Excel 中安装 Function Wizard 的方式与安装 MATLAB Compiler 生成的加载项的方式相同。有关说明,请参阅安装 Excel 加载项

Function Wizard 的加载项文件位于 matlabroot\toolbox\matlabxl\matlabxl\win64\FunctionWizard.xla。例如,如果您使用 MATLAB R2025a 编译了加载项,则安装文件 C:\Program Files\MATLAB\R2025a\toolbox\matlabxl\matlabxl\win64\FunctionWizard.xla。该文件包含一个宏,可将 Function Wizard 按钮加载项添加到 Home 选项卡。

启动 Function Wizard

注意

在使用 Function Wizard 加载项之前,您必须先注册 MATLAB 实用工具库。有关详细信息,请参阅注册 MATLAB 实用工具库

点击 Home 选项卡上的 Function Wizard 加载项按钮,启动 Function Wizard。向导初始化后,控制面板打开。

Function Wizard 控制面板

The Function Wizard Control Panel for working with MATLAB functions

注意

关闭 Function Wizard 控制面板不会删除您在 MATLAB 会话中添加的任何 Excel 函数或参量,但关闭 Excel 会重置 Function Wizard。

定义要执行的函数

使用 Function Wizard 添加您想要执行的 MATLAB 函数。

  1. 在控制面板中,点击 Setup Functions 区域中的 Add Function。此时将打开 MATLAB 的“组件”对话框。

  2. 在“可用组件”区域中,从下拉列表中选择组件的名称。

    注意

    如果您的组件未列出,请确保您已经注册了它的 DLL。有关详细信息,请参阅注册加载项和 COM 组件

  3. Functions for Class classname 中,选择要执行的函数。

  4. 点击 Add Function。此时将打开“函数属性”对话框。

    提示

    Function Properties 对话框中的 Function Syntax and Help 区域显示 MATLAB 函数中的第一个帮助文本行。对于不熟悉 MATLAB 函数的最终用户来说,此描述可能很有帮助。

定义输入参量

注意

Function Wizard 目前不支持 MATLABsparsecomplex 数据类型。

在 Function Properties 对话框中,定义 MATLAB 函数的输入参量属性。

  1. 输入选项卡上,点击设置输入数据。打开 Input Data for x 对话框,其中 x 是输入变量的名称。

    The Input Data for x panel for specifying input arguments

  2. 选择输入参量的类型。

    • Range 是指工作表中的单元格范围。点击右侧的文本框或单元格选择按钮,然后从工作表中选择包含输入数据的单元格。

      要在电子表格数据每次更改时自动重新计算,请选择 Auto recalculate on change 选项。

      小心

      避免使用箭头键选择范围。如果必须使用箭头键来选择范围,请从 Microsoft 网站应用必要的修复:https://mskb.pkisolutions.com/kb/291110

    • Value 指的是您在文本框中指定的值。输入要用作输入数据的值,并在下拉列表中选择数据类型。

    • 如果参量引用结构体数组 (struct),请选择 This is a MATLAB structure array argument,然后点击 OK。将打开 Input Data for Structure Array Argument x 对话框。

      The Input Data for Structure Array Argument x panel for specifying struct array input agruments

      Function Wizard 支持一维和二维结构体数组的输入和输出。

      当您部署带有结构体数组参量的函数时,让最终用户知道哪些参量是结构体数组并列出它们的字段名称。

      1. 在 Structure Array Organization 区域中,选择 Element by Element OrganizationPlane Organization。有关详细信息,请参阅结构体数组中数据的组织方法

      2. 要为每个结构体数组参量添加字段,点击 Add Field。将打开 Field for Structure Array Argument 对话框。

        The Field for Structure Array Argument panel for specifying struct array fields

      3. Name 字段中,定义结构体数组字段的名称。您指定的名称必须与 MATLAB 函数中结构体数组的字段名称完全匹配。

      4. Range 字段中,指定结构体数组的字段的范围。

        The Field for Structure Array Argument panel with the Name and Range fields filled in

      5. 点击确定添加该字段。

        对结构体数组中的每个字段重复这些步骤。

  3. 要指定如何格式化日期以及处理此输入数据的空单元格,点击 Input Data for x 对话框中的 Options。将打开 Input Conversion Options 对话框。

    The Input Conversion Options dialog box

    • Coerce Numeric to Type 下拉列表中,选择一种数据类型来控制数字数据的转换。

    • Treat Missing Data As 下拉列表中,指定 ZeroNaN (Not a Number)

  4. 点击确定以添加输入参量。

对函数的每个输入参量重复该过程。

定义输出参量

在 Function Properties 对话框中,定义 MATLAB 函数的输出参量属性。

  1. Output 选项卡上,点击 Set Output Data。出现 Output Data for y 对话框,其中 y 是输出变量的名称。

    The Output Data for y panel for specifying output arguments

    提示

    您还可以指定 MATLAB Compiler 自动调整输出数据的大小 (Auto Resize)、转置 (Transpose) 或以日期格式输出 (Output as date)。

  2. Range 字段中,将输出参量的类型指定为单元格范围或 MATLAB 结构体数组。

    有关使用结构体数组参量的详细信息,请参阅定义输入参量

  3. 要使 Excel 能够动态选择输出单元格的数量,请选择 Auto Resize(如果尚未选择)。

  4. 在 Output Data for y 对话框中点击 Done 以添加输出参量。

对 MATLAB 函数的每个输出参量重复此过程。

注意

当使用具有多个输出的函数时,为每个参量定义单独的输出范围。

测试并保存宏

向 MATLAB 函数添加完参量后,点击 Function Properties 对话框中的 Done。您的函数将显示在 Function Wizard 控制面板中的 Active Functions 列表中。您可以随时通过在列表中选择函数然后点击 Edit/Set Data 来编辑函数参量。

The Function Wizard Control Panel with myfunction in the Active Functions list

要测试您的宏,点击 Execute Functions 区域中的 Execute。定义为输出参量的单元格范围将自动使用当前 Excel 表上的函数输出进行填充。

要保存宏:

  1. 在控制面板的 Create Macros 区域中,在 Macro Name 字段中输入宏的名称。

  2. Store Macro In,选择用于存储宏的工作簿。

  3. Description 字段中,输入宏功能的简短描述。

  4. 点击 Create Macro

    在目标 Excel 工作簿中创建并保存一个宏。

Excel 中执行宏

Microsoft Excel 中运行宏。

提示

Microsoft Excel 中运行宏之前,您可能需要启用适当的安全设置。有关宏权限和相关错误消息的信息,请参阅错误和解决方案

  1. Microsoft Excel 中,点击视图 > 宏 > 查看宏

  2. 宏名下拉列表中选择宏。

  3. 点击运行。定义为输出参量的单元格范围将自动填充函数输出。

访问 Microsoft Visual Basic 代码(可选)

要访问或修改宏中的 Visual Basic 代码:

  1. 在 Excel Developer 选项卡中,点击 Visual Basic,或按 ALT + F11 打开 Visual Basic Editor。在旧版本的 Excel 中,它可能位于 Tools > Macro > Visual Basic Editor 下。

  2. Project - VBAProject 窗口中,双击展开 VBAProject (Book1)

  3. 展开 Modules 文件夹并双击 Matlab Macros 模块。

    Visual Basic 代码窗口打开,其中显示该工程的代码。

将宏映射到按钮(可选)

要创建一个表单控制按钮,当您点击该按钮时运行宏:

  1. 在 Excel 开发工具选项卡中,点击插入

  2. 窗体控件菜单中,选择按钮 (窗体控件) 图标。

    提示

    要查看各种控件标签,请将鼠标指向“窗体控件”菜单上。

  3. 在“指定宏”对话框中,选择要分配按钮的宏,然后点击确定

An Excel spreadsheet with the Insert Form Controls menu highlighted and the Assign Macros dialog box open

另请参阅

主题