将Microsoft DataGrid等ActiveX控件添加到Excel工作表时“无法插入对象”错误

时间:2013-06-03 09:15:54

标签: excel security activex

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

此COM控件已在操作系统中正确注册,可以添加到VBA UserForms和其他应用程序中,但我们无法对Excel工作表执行此操作。看起来,它是ActiveX的常见问题 - 甚至是像Microsoft DataGrid Control 6.0这样的遗留问题。在搜索了大量时间的解决方案后,我们得出结论,这是MS Office中的安全设置。因此,问题可以表述如下:如何在MS Office中启用特定ActiveX控件的使用?

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

首先,Microsoft states

  

并非所有ActiveX控件都可以直接在工作表中使用;一些只能在Microsoft Visual Basic for Applications(VBA)UserForms上使用。使用这些控件时,如果您尝试将对象添加到工作表,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 Trust Center。允许使用所有ActiveX没有任何限制,并将带有iGrid ActiveX的文件夹添加到受信任位置列表中无论如何都无济于事。

4 个答案:

答案 0 :(得分:14)

来自Technet论坛

关闭Excel。

启动Windows资源管理器。

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

使用“搜索”框搜索* .exd

删除找到的所有文件。

再次启动Excel。

答案 1 :(得分:2)

我们过去曾遇到类似的问题,我们在COM加载项的Excel工作表中插入了一个ActiveX控件,您似乎已经触及了两个项目(下面)来解决它。以下几点解决了这个问题。

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

  • 加载项:UNCHECK'要求应用程序加载项由Trusted Publisher签名'。
  • 宏设置:确保未在没有通知的情况下禁用所有宏。如果将其设置为“禁用具有通知的所有宏”,则可以。
  • ActiveX设置:确保在没有通知的情况下不禁用所有控件。可以设置为'在启用具有最小限制的所有控件之前提示我'。这是主要原因。
  • 受信任的位置:添加控件的目录。

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

  • 但是,我在这里的原因是我们有一个案例(200个客户中),其中上述不起作用,这只是在一周前开始发生(它在过去的9个月里工作)。由于没有任何变化,我现在假设Excel损坏。我们已经尝试了一切。你解决了吗?

答案 2 :(得分:1)

这解决了我:

转到以下注册表:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Office \ 15.0 \ Common \ COM Compatibility {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

答案 3 :(得分:0)

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

我通过简单地重新注册我使用的主要控件类型来解决了这个问题,例如Command按钮,Comboboxes,Listboxes,Spinners等。

要执行此操作,请进入“开发人员”选项卡,然后单击“插入(控件)

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