主要内容

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

错误和解决方案

查看使用 MATLAB® Compiler™ 时可能遇到的错误、这些错误的可能原因以及建议的解决方案。

Excel 加载项错误和建议的解决方案

错误、警告、原因和建议的解决方案

消息可能的原因建议的解决方案

Excel® (64-bit) hangs when calling the add-in.

MATLAB 代码包含对 actxGetRunningServer 的调用。

删除对 actxGetRunningServer 的调用。64 位 Excel 不支持该工作流。

MBUILD.BAT: Error: The chosen compiler does not support building COM objects.

所选的编译器不支持构建 COM 对象。

重新运行 mbuild -setup -client mbuild_com 并选择支持的编译器

Error in component_name.class_name:
Error getting data conversion flags.

通常是由于 mwcomutil.dll 未注册导致的。

打开 DOS 窗口,将文件夹更改为 matlabroot\bin\win64 matlabroot 代表系统上 MATLAB 的位置),然后运行命令
mwregsvr mwcomutil.dll

有关完整详细信息,请参阅注册加载项和 COM 组件

Error in VBAProject: ActiveX component can't create object.
  • 工程 DLL 未注册。

  • 系统路径上的某处存在不兼容的 MATLAB DLL。

如果 DLL 未注册,请打开 DOS 窗口,将文件夹更改为 <projectdir>\distrib (<projectdir> 代表您的工程文件的位置),然后运行命令:
mwregsvr <projectdll>.dll

有关完整详细信息,请参阅注册加载项和 COM 组件

Error in VBAProject: Automation error The specified module could not be found.

如果 MATLAB 不在系统路径上,通常会发生这种情况。如果您的系统路径上有多个版本的 MATLAB 则会出现此错误消息。

当您拥有多个版本的 MATLAB 时,请确保最新版本的 MATLAB 首先出现在您的路径中。您可以通过在 DOS 提示符下键入 path 来首先验证 MATLAB 的最新版本是否在路径上。请参阅表开发和使用组件所需的位置

LoadLibrary
("component_name.dll") failed - The specified module could not be found.

从 DOS 提示符注册工程 DLL 时可能会收到此错误消息。如果 MATLAB 不在系统路径上,通常会发生这种情况。

请参阅表开发和使用组件所需的位置

Cannot recompile the M file xxxx because it is already in the library libmmfile.mlib.

您为 MATLAB 文件选择的名称与预编译 MATLAB 文件库中已有的 MATLAB 文件的名称重复。

重命名 MATLAB 文件,选择一个与预编译 MATLAB 文件库中已有的 MATLAB 文件名称不重复的名称。

Arguments may only be defaulted at the end of an argument list.

您修改了为 MATLAB Compiler 生成的 VB 脚本,但未提供修改后的脚本中使用的一个或多个参量。

为任何需要明确值的参量提供一个值。接受默认值的参量出现在参量列表的末尾。

Unable to use accessibility screen-readers or assistive technologies, such as JAWS® 所需文件 JavaAccessBridge.dllWindowsAccessBridge.dll 不再自动添加到您的 Windows® 路径中。

将以下 DLL 添加到您的 Windows 路径:

JavaAccessBridge.dll
WindowsAccessBridge.dll

Error in class.method.version这是一个通用消息,但当 MATLAB 和 Microsoft® Excel 的架构版本存在冲突时有时会出现。有关详细信息,请参阅部署目标架构和兼容性
Error:
Error IMWDispatchDriver "Method Load of object IMWDispatchDriver failed"

MATLAB Runtime 和 MATLAB 的版本不同导致 IMWDispatchDriver 错误。

检查 MATLAB 和 MATLAB Runtime 的当前版本。通过在 DOS 提示符中键入 MATLAB 路径来验证 MATLAB 版本。如果版本不匹配,请更新并安装与当前 MATLAB 版本匹配的 MATLAB Runtime 新版本。

Error in VBA project: Method xxx of object 'IClass1' failed

系统上运行多个版本的 MATLAB 会导致此错误。

注册 mwcomutil.dll 和 mwcommgr.dll 注册表文件。打开 DOS 窗口,cd 到 matlabroot\bin\win64 matlabroot 代表系统上 MATLAB 的位置),然后运行命令
mwregsvr mwcomutil.dll
mwregsvr mwcommgr.dll

Warning: File not found. Excel primary interop assembly is not found.

Visual Studio® 没有 Visual Studio 工具

在安装 Visual Studio 时安装 Visual Studio Tools,以便使用 Excel 集成目标访问所有文件和打包可部署存档。

An error occurred when sending commands to the program.

Excel 选项中的忽略使用动态数据交换 (DDE) 的其他应用程序复选框被选中。

  1. 选择文件,然后选择选项

  2. 选择高级,导航到“常规”部分,并确保未选中忽略使用动态数据交换 (DDE) 的其他应用程序选项。

  3. 点击确定

开发和使用组件所需的位置

组件和目标计算机

组件开发计算机 目标计算机
MATLAB Runtime确保 matlabroot\bin\win64 出现在您的系统路径中,位于任何其他 MATLAB 安装之前
matlabroot 是您的根 MATLAB 文件夹。)
验证 <MATLAB_RUNTIME_INSTALL_DIR>\<ver>\runtime\<arch> 是否出现在您的系统路径中。有关详细信息,请参阅针对部署设置 MATLAB Runtime 路径

Microsoft Excel 错误和建议的解决方案

错误、原因和解决方案

消息可能的原因建议的解决方案
该工程中的宏已被禁用。请参阅主机应用程序的在线帮助或文档以确定如何启用宏。
注意:措辞可能会根据您所运行的 Excel 版本而有所不同。

Excel 的宏安全性设置为 High

通过执行以下操作,在安全级别选项卡上将 Excel 宏安全性设置为 Medium

  • 对于 Microsoft Office 2010 或更高版本:

    1. 点击文件 > 选项 > 信任中心 > 信任中心设置 > 宏设置

    2. 开发工具宏设置中,选择 Trust access to the VBA project object model

  • 对于 Microsoft Office 2007:

    1. 点击 Microsoft Office 功能区上的 2007 Office 按钮。

    2. 点击 Excel 选项 > 信任中心 > 信任中心设置 > 宏设置

    3. 开发工具宏设置中,选择 Trust access to the VBA project object model

Function Wizard 问题

问题、原因和建议的解决方案

问题可能的原因建议的解决方案

不出现 Function Wizard 帮助。

Function Wizard 帮助文件 (mlfunction.chm) 与 Function Wizard 加载项 (mlfunction.xla) 不位于同一文件夹中。

将帮助文件 (mlfunction.chm) 复制到与加载项相同的文件夹中。

Function Wizard 不会自动导入您的 .bas 文件,您必须手动创建宏

Function Wizard 发生故障,出现未指定的错误

  1. 打开 Excel

  2. 执行以下操作之一:

    • 对于 Microsoft Office 2007 或更高版本,点击开发人员 > 宏

    • 对于 Microsoft Office 2003,点击工具 > 宏 > 宏

  3. 从 Visual Basic® 编辑器中,选择 File > Import,然后从 <project_dir>\distrib 文件夹中选择创建的 VBA 文件。

提示

您可能需要在执行此步骤之前启用开发人员菜单项。

对于 Office 365:

  1. 点击文件

  2. 点击选项,然后选择自定义功能区

  3. 自定义功能区下,选择主选项卡并选中开发工具复选框。

对于 Microsoft Office 2007 或 2010:

  1. 点击 Microsoft Office 功能区上的 Office 按钮,或者在 Office 2010 中点击文件以显示 Office Backstage 视图。

  2. 点击 Excel 选项

  3. 适用于 Excel 的主要选项区域中,选择在功能区中显示‘开发工具’选项卡

尝试使用 Function Wizard 创建宏时出现错误

当 Function Wizard 调用 MATLAB 时,显示的是消息 Failed to start MATLAB 而不是 Starting MATLAB...

如果您手动终止从 Function Wizard 调用的 MATLAB 会话,则可能出现此消息。因此,您无法再在当前 Excel 会话中使用向导的 MATLAB 相关功能。

保存您的工作并重新启动 Microsoft Excel

当我使用 CTRL + 箭头键通过 Function Wizard 选择范围时,一旦我选择一个函数并开始选择函数输入,键盘导航在 Excel 中不再起作用。

此行为是由 Microsoft Excel 中的一个 bug 导致的。

如果您必须使用箭头键来选择范围,请应用以下修复。
  1. 退出 Excel(如果正在运行)。

  2. 使用“运行”App,打开 regedit

  3. 找到并选择以下注册表项:

    HKEY_CURRENT_USER\software\microsoft\office\<version>\Excel\options

  4. 在“编辑”菜单上,点击新建,然后点击“DWORD 值”。

  5. 键入 QFE_Richmond 作为新值,然后按 ENTER

  6. 右键点击 QFE_Richmond 注册表项,然后点击修改

  7. 数据框中输入:1

  8. 点击确定,然后退出注册表编辑器。