vba - Excel VBA 中的 "Object Library invalid or contains references..."和 DatePicker

标签 vba excel activex registry

我已经在一个包含大量 VBA 代码的 Excel 工作簿上工作了一段时间,现在我已将此文件发送给一些同事进行测试,但它在他们的计算机上不起作用。 我们都在同一家公司工作,并且拥有 Windows XP SP2 和 Office 2003。

工作簿有一个窗体,单击形状时会打开该窗体,并且其中包含一些控件。 当他们单击表单的形状以显示以下错误时,会出现:

"Object Library invalid or contains references to object defintions that could not be found"

表单中有一个 DatePicker,我认为这就是问题所在。如果我从表单中删除 datePicker 并再次向他们发送文件,他们就不会收到此错误消息。

我已经尝试删除这两个站点“Microsoft”和“lessanvaezi”中提到的mscomct2.exd文件,但仍然弹出错误。我检查了一下,新的 .exd 文件已生成。

一些附加信息:

  1. 我检查了他们的系统,发现文件 mscomct2.ocx 位于正确的位置(c:\Winxp\System32)。
  2. 如果我打开一个空的 Excel 文件,请转到 VBA 编辑器,然后转到“工具”->“引用”,我看不到注册“Microsoft Common Control-2 6.0 (SP6)”(mscomct2.ocx) 的选项。相反,我看到的是“Microsoft Windows Common Controls Satellite-3 6.2)”(cmct3de.dll)。
  3. 我向同事发送了包含 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

end Sub

  1. 如果我随后转到 VBE 编辑器中的表单并右键单击 工具箱,然后转到 附加控件以添加 “微软日期和时间选择器” 控制,我看到列出了该选项 两次。不幸的是不管 我选择哪一个,行为 是相同的:日期选择器符号 已添加到工具箱中,但是当我 将控件拖到窗体上, msgBox 弹出提示该控件 不可用。

有人知道出了什么问题吗?我该怎么做才能让它在他们的计算机上运行?

感谢任何帮助。

编辑:

出现此问题的计算机已升级,因此我无法找到适合我的情况的具体解决方案。我选择 Archers 解决方案,因为它帮助了最多的人(最多点赞)。

最佳答案

我也有同样的问题。 http://support.microsoft.com/kb/957924/en-us删除所有 .exd 文件使我的程序正常运行!

进入命令提示符并键入以下 DOS 命令:

代码:

CD \Documents and Settings

DEL /S /A:H /A:-H *.EXD

关于vba - Excel VBA 中的 "Object Library invalid or contains references..."和 DatePicker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4495002/

相关文章:

VBA循环遍历文件夹找到工作表打开它并将所有选项卡移动到另一个工作簿

vba - IE10文件下载

arrays - 调用 sub 后 Excel 工作簿编译错误

java - 在java中生成excel

javascript - 如何通过 navigator.plugins 使 ActiveX 对象可发现?

vba - 避免在此代码中使用 with activesheet

VBA 通过用户选择数组大小来调整数组大小

java - 仅使用基元将元素动态添加到二维数组中

visual-studio-2008 - 将 VB 6.0 ActiveX 控件迁移到 MFC ActiveX 控件

excel - Excel ActiveX 调用中出现的错误代码 0x800A01A8 是什么?