不同Windows和Windows中无法识别的引用办公室版本

时间:2013-12-26 13:14:25

标签: vba excel-vba excel

我需要VBA项目的ListView控件。为了使用它,我引用了Microsoft Windows Common Controls 6.0(SP6),并在包含ListView对象的Windows 7(64位)上的Office 2010中绘制了一个GUI。当我在工作中打开VBA项目(Windows XP上的Office 2007)时,出现错误消息“无法加载对象,因为它在此计算机上不可用”。当我打开References对话框时,我看到了这个: References dialog

有两个“Microsoft Windows Common Controls 6.0(SP6)”项:一个“MISSING”,一个可用(但未选中)。文件路径不同:缺少的文件路径应位于C:\ Windows \ SysWOW64 \ MSCOMCTL.OCX中,而可用的文件路径位于C:\ Windows \ system32 \ MSCOMCTL.OCX。

为什么Excel / VBA不能使用可用的引用?尽管名称相同,但这些库是否有所不同?一个是64位版本,另一个是32位版本(如果我没记错的话,两个Office版本都是32位版本)。如何让我的VBA项目在不同的Windows或Office版本之间互操作?

1 个答案:

答案 0 :(得分:2)

如果两个版本的Office都是32位,我会猜测你家用机器上的CPU / OS是64位,但你的工作机器是32位。当您具有32位CPU和OS时,驱动程序都是32位并位于System32文件夹中。在64位CPU / OS上,64位驱动程序位于System32文件夹中(我知道这很混乱),32位驱动程序位于SysWOW64文件夹中。

如果您将路径设置为“C:\ Windows \ system32 \ MSCOMCTL.OCX”,它应该适用于两台计算机,因为如果需要,Windows会自动redirect您的应用程序使用SysWOW64路径链接页面上列出的警告。

相关问题