【问题标题】:"Cannot insert object" error when adding ActiveX control like Microsoft DataGrid to Excel sheet [duplicate]将 Microsoft DataGrid 等 ActiveX 控件添加到 Excel 工作表时出现“无法插入对象”错误 [重复]
【发布时间】:2013-05-29 09:49:42
【问题描述】:

我们的 iGrid ActiveX 网格控件的一个用户需要将其直接插入到 MS Excel 工作表中,但他们没有设法做到这一点 - 始终生成“无法插入对象”错误。我们也可以在Win7 64位和MS Office 2010 32位的测试电脑上重现这个问题。

此 COM 控件已在操作系统中正确注册,并且可以添加到 VBA 用户窗体和其他应用程序,但我们不能为 Excel 工作表执行此操作。看来,这对于 ActiveX 来说是一个常见问题——即使是像 Microsoft DataGrid Control 6.0 这样的遗留问题。在搜索了很长时间的解决方案后,我们得出结论,这是 MS Office 中的安全设置。所以问题可以表述为:如何在 MS Office 中启用特定 ActiveX 控件的使用?

以下是我们找到的相关资源,可能会有所帮助。

首先,Microsoft states那个

并非所有 ActiveX 控件都可以直接在工作表上使用;有些只能在 Microsoft Visual Basic for Applications (VBA) 用户窗体上使用。当您使用这些控件时,如果您尝试将它们添加到工作表中,Excel 会显示消息无法插入对象。

有人知道哪些缺失的功能可能会阻止 ActiveX 控件插入 Excel 工作表吗?

其次,EXD files 用于缓存 ActiveX 控件存在一个已知问题。但我们已经检查过了 - 这不是我们的情况。

第三,微软有两篇技术文章解释了如何“修复”一些 ActiveX 使用注册表的 ActiveX 安全问题:

PRB:Excel 中出现错误消息“无法插入对象”
http://support.microsoft.com/default.aspx?scid=kb;EN-US;171280

无法将某些可编写脚本的 ActiveX 控件插入到 Office 2013 文档中
http://support.microsoft.com/kb/2793374

看来,这也无济于事——或者我们只是做错了什么。

我们尝试的最后一件事 - Office 信任中心。允许无任何限制地使用所有 ActiveX 并将带有 iGrid ActiveX 的文件夹添加到受信任位置列表无论如何都没有帮助。

【问题讨论】:

  • 让我觉得自己很愚蠢。我的问题的解决方案就在你提到的链接中 support.microsoft.com/kb/2793374 。试过了。有效!
  • @richie,我使用的是 Office 2010,而不是 2013,但我仍然收到此错误:“无法插入对象”用于活动 X 命令按钮 - 然后我通常会在其中分配一个或多个宏和验证那个按钮。这仍然适用吗?任何想法,如果 Active X 按钮由于被视为安全威胁而不能再使用,那将是令人遗憾的。
  • @TecMan:你解决过这个问题吗?我遇到了同样的问题...
  • @eggyal,我记得,我通过删除目录 `C:\Users\\AppData\Roaming\microsoft\forms` 中相应的 .exd 文件解决了这个问题。让我们知道这是否适合您。
  • @TecMan:遗憾的是,我什至无法达到将我的控件的扩展类型库 (exd) 写入磁盘的阶段! Excel 在第一次尝试时因“无法插入对象”而中止。我开了一个new question;希望有人给出答案!

标签: excel security activex


【解决方案1】:

来自 Technet 论坛

关闭 Excel。

启动 Windows 资源管理器。

选择您的系统驱动器(通常是 C:)

使用搜索框搜索 *.exd

删除它找到的所有文件。

再次启动 Excel。

【讨论】:

  • 成功了!非常有用,因为最近的自动 Office 更新导致这个问题让我突然出现在某些用户(但不是其他用户)面前。谢谢斯特凡!
  • 在文件夹c:\....\AppData\Local\Temp\Excel8.0找到它
【解决方案2】:

过去,我们通过 COM 插件在 Excel 工作表中插入 ActiveX 控件时遇到过类似问题,您似乎已经触及其中两个项目(如下)来解决它。以下解决了大多数情况下的问题。

从 Excel 2010:文件功能区;选项;信托中心;信任中心设置(按钮)...;

  • 加载项:取消选中“要求应用程序加载项由受信任的发布者签名”。
  • 宏设置:确保它不会在没有通知的情况下禁用所有宏。如果设置为“禁用所有带有通知的宏”就可以了。
  • ActiveX 设置:确保它不会在没有通知的情况下禁用所有控件。可以将其设置为“在启用所有具有最小限制的控件之前提示我”。这是主要原因。
  • 受信任的位置:添加您的控件的目录。

请注意,如果 InstallShield 正确注册了包含程序(例如 dll),则其中一些通常不是必需的。另请注意,我们仍然允许提示(预防您的责任可能是一个好主意)。这并没有给我们带来问题。

  • 但是,我在这里的原因是我们有一个案例(在 200 名客户中)上述方法不起作用,而这只是在一周前开始发生(过去 9 个月一直有效)。我假设此时 Excel 损坏,因为没有任何变化。我们已经尝试了一切。你的问题解决了吗?

【讨论】:

  • 我刚刚检查了你写的所有内容。就我而言,前 3 个选项是按照您的建议设置的。至于第四个,我在受信任的位置列表中没有 OCX 的路径。添加它,但它没有帮助。
【解决方案3】:

这为我解决了:

转到以下注册表:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\Common\COM 兼容性{8856F961-340A-11D0-A96B-00C04FD705A2}

然后将数值数据从400设置为0。

希望对你有帮助。

抱歉,忘记为找到它的人表示感谢。这里。 http://social.technet.microsoft.com/Forums/office/en-US/7942c472-2b5a-4005-888f-43ece2a5800a/adding-web-browser-control-to-excel-2013?forum=officeitpro&prof=required

【讨论】:

    【解决方案4】:

    前几天我遇到了这个问题,我的解决方案回到了基础,因为我不喜欢编辑注册表的想法。

    我通过简单地重新注册我使用的主要控件类型(即命令按钮、组合框、列表框、微调器等)解决了这个问题。

    为此,请进入“开发人员”选项卡并单击“插入”(控件)

    通过选择 Activex 控件右下角的“更多控件”,您可以重新注册您可能需要的任何控件。

    【讨论】:

      猜你喜欢
      • 2016-03-21
      • 2022-12-19
      • 1970-01-01
      • 2012-04-29
      • 1970-01-01
      • 2020-12-02
      • 1970-01-01
      • 2013-06-27
      • 2018-06-02
      相关资源
      最近更新 更多