10

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

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

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

首先,微软表示

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

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

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

第三,微软有两篇技术文章解释了如何“修复”一些 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 的文件夹添加到受信任位置列表中无论如何都没有帮助。

4

4 回答 4

15

来自 Technet 论坛

关闭 Excel。

启动 Windows 资源管理器。

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

使用搜索框搜索 *.exd

删除它找到的所有文件。

再次启动 Excel。

于 2014-12-12T15:08:07.833 回答
3

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

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

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

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

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

这为我解决了它:

转到以下注册表:

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

于 2014-03-31T18:56:22.080 回答
0

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

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

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

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

于 2014-12-12T19:42:31.210 回答