我们的 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 的文件夹添加到受信任位置列表中无论如何都没有帮助。