【发布时间】:2010-12-20 23:27:31
【问题描述】:
一段时间以来,我一直在使用包含大量 VBA 代码的 Excel 工作簿,现在我已将此文件发送给一些同事进行测试,但它在他们的计算机上不起作用。 我们都在同一家公司工作,并且拥有 Windows XP SP2 和 Office 2003。
工作簿有一个在单击形状时打开的表单,其中包含一些控件。 当他们单击表单的形状以显示以下错误时:
"对象库无效或包含 对对象定义的引用 找不到”
在表单中有一个 DatePicker,我认为这就是问题所在。如果我从表单中删除 datePicker 并再次向他们发送文件,他们不会收到此错误消息。
我已经尝试删除这两个站点“Microsoft”和“lessanvaezi”中提到的 mscomct2.exd 文件,但错误仍然弹出。我检查并生成了新的 .exd 文件。
一些附加信息:
- 我检查了他们的系统,他们确实在正确的位置 (c:\Winxp\System32) 有文件 mscomct2.ocx。
- 如果我打开一个空的 Excel 文件,转至 VBA 编辑器,转至工具 -> 参考,我看不到注册“Microsoft Common Control-2 6.0 (SP6)”(mscomct2.ocx) 的选项。相反,我看到的是“Microsoft Windows Common Controls Satellite-3 6.2)”(cmct3de.dll)。
- 我将带有 datePicker 的文件发送给我的同事,但没有提及“Microsoft Common Control-2 6.0 (SP6)”。在单击形状并打开表单之前,我尝试使用以下代码动态引用 MSCOMCT2.ocx 库。它引用了“Microsoft Common Control-2 6.0 (SP6)”,但仍然弹出错误。
Sub RegisterCtl()
'MSComCt2.ocx strGUID = "{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}" ThisWorkbook.VBProject.References.AddFromGuid guid:=strGUID, Major:=1, Minor:=0结束子
- 如果我随后转到 VBE 编辑器中的表单并右键单击 工具箱,然后转到 用于添加的附加控件 “微软日期和时间选择器” 控制,我看到列出的选项 两次。不幸无视 我选择的其中一个,行为 是一样的:日期选择器符号 在工具箱中添加了,但是当我 将控件拖到窗体中,a msgBox 弹出说该控件 不可用。
有人知道出了什么问题吗?我该怎么做才能让它在他们的计算机上运行?
感谢您的帮助。
编辑:
出现此问题的计算机已升级,因此我无法找到适合我的情况的具体解决方案。我选择 Archers 解决方案,因为它帮助了大多数人(Most Upvotes)。
【问题讨论】:
标签: vba excel activex registry