由Forms导致的Office Service Pack 3.0导致的Excel/VBA自动化错误

Rob*_*Rob 6 windows excel vba windows-update ms-office

安装所有最新的Windows更新后,我的Excel VBA代码在第一个模块的最开始显示自动化错误.它包含一些表单以及VBA代码的众多模块.但是,删除表单(和相关代码)时一切都很好.

大约一年前,在其他一些Windows更新之后发生了同样的事情.然后删除.exd文件就可以了,但当前的更新(包括Service Pack 3)似乎有所不同.

发生了什么,我怎样才能让表格运作起来?所有代码都保持不变,并且在以前的所有Windows/Office更新中都存活了下来.运行Windows 7(在Vista计算机上也是如此)和Office 2007.

ray*_*ray 16

我曾经在Visual Basic和Crystal Reports中看到过这么多; 由于部署不良或DLL Hell造成的.

所以,我的猜测是它不是代码,而是你正在使用的一些第三方控件(OCX,DLL).

检查引用(在VBA IDE中,单击"工具和引用")并查看每个DLL指向的位置.

查看库中的任何日期是否与工作机器不同,您可能会发现罪魁祸首.


编辑

OP按照上述步骤发现了问题.

解决此特定问题的方法是取消注册mscomctl.ocx:

regsvr32 /u mscomctl.ocx 
Run Code Online (Sandbox Code Playgroud)

然后注册:

regsvr32 mscomctl.ocx
Run Code Online (Sandbox Code Playgroud)


Mic*_*man 5

同样的问题,注册mscomctl.ocx后问题完全解决了!

对于Windows 7或2008 - 请记住以管理员身份运行cmd.exe,然后:

对于32位Windows系统:regsvr32 c:\ windows\system32\mscomctl.ocx

对于64位Windows系统:regsvr32 c:\ windows\syswow64\mscomctl.ocx