我有一些Excel工作表,使用ActiveX复选框来控制某些活动.他们最近工作但今天开始出错.我被一位同事告知了这一点,但它仍然在我的电脑上工作.我检查了他对我的Excel版本,他更新了.我注意到有新的Windows更新,所以我做了更新.应用挂起的更新后,它现在不再适用于我的计算机.我不能再检查ActiveX复选框了,并且,作为尝试调试的一部分,似乎我甚至无法将ActiveX控件添加到任何工作表,甚至是新的工作表.我收到一个错误对话框,上面写着"无法插入对象".(我仍然可以添加表单控件,而不是ActiveX.)最近更新后遇到此问题的其他人?有什么建议?
谢谢,
麦克风
Microsoft Office支持文章" 添加或注册ActiveX控件 "说:
重要提示:并非所有ActiveX控件都可以直接在工作表中使用; 一些只能在Microsoft Visual Basic for Applications(VBA)UserForms上使用.使用这些控件时,如果您尝试将对象添加到工作表,Excel将显示消息"无法插入对象".
但是,我无法在任何地方找到有必要和足以使控件直接在工作表上使用的要求.
我创建了一个新的C++/ATL项目,我已经添加了一个ATL控件,接受了整个默认值.在编译,构建和注册控件之后,它出现在Excel的"更多控件"列表中(在"开发">"插入">"ActiveX控件">"更多控件"下访问...)但在尝试插入工作表时,会看到"无法插入对象" "错误.
我必须做些什么改变才能解决这个问题?
要么
Excel对ActiveX控件的要求记录在哪里?
为了它的价值,我已经验证了向导生成的控件确实可以正常工作(使用我从Visual C++ 2008示例包构建的ActiveX控件测试容器测试).
此外,我知道ATL控件向导的"外观"选项卡的文档描述了"可插入"复选框,如下所示:
选择此选项可使控件显示在Word和Excel等应用程序的"插入对象"对话框中.然后,任何支持嵌入对象的应用程序都可以通过此对话框插入您的控件.
但是,此复选框(只是将"可插入"子项添加到注册表中)只会使控件出现在"插入">"文本">"对象"对话框中 - 为避免疑问,我已尝试使用和不使用此选项并且无论如何都会产生同样的错误.
我正在尝试在尝试插入工作(Forms 2.0)控件时插入我的控件时,比较Excel的执行路径的痕迹.在加载类型库(OLE/COM对象查看器能够从我的DLL中正确加载)时,关键区别似乎在VBE7.dll中- 但在Excel执行了所有相同的读取之后,它在写出EXD之前中止)...我正在挖掘一些装配现在徒劳地希望我能弄明白 - 但是肯定有人为Excel建立了一个工作控制并知道我缺少什么可以免除我这种痛苦?!
Microsoft Windows 10 Pro v1511(10.0.10586.164)64位
Microsoft Excel 2016 MSO(16.0.4312.1000)64位
Microsoft Visual Studio社区2015(14.0.24720.00 Update 1)