表单导致的Office Service Pack 3.0导致的Excel / VBA自动化错误

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

一年前,在其他一些Windows更新之后发生了同样的事情。 然后,删除.exd文件没有办法,但当前的更新(包括Service Pack 3)似乎是不同的。

发生了什么事情,我怎样才能让表格工作? 所有的代码保持不变,并保留了以前所有的Windows / Office更新。 运行Windows 7(同样发生在Vista机器上)和Office 2007。

我曾经用Visual Basic和Crystal Reports看过很多, 要么是由于部署错误或DLL地狱 。

所以,我的猜测是,这不是代码,但也许是一些第三方控件(OCXs,DLLs),你正在使用。

检查您的参考(在VBA IDE中,单击工具和参考)并查看每个DLL指向的位置。

看看图书馆的任何日期是不同的工作机器,你可能会发现罪魁祸首。


编辑

OP按照上面的步骤找到了问题。

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

regsvr32 /u mscomctl.ocx 

然后注册它:

 regsvr32 mscomctl.ocx 

同样的问题在这里,注册mscomctl.ocx后问题彻底解决!

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

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

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

与AutoCAD的VBA相同的问题。 在我的情况下,用regsvr32注册新的mscomctl.ocx足以解决这个问题。

我们无法通过重新注册mscomctl.ocx来解决问题。 但我们通过删除一个“进度条对象窗体”来解决这个问题,这个窗体调用了mscomctl.ocx …我们用application.statusbar替换了它。

我们有同样的问题。 在我们的加载项中,我们能够将问题追踪到变量的声明为Excel.Application。 这个对象的引用在Excel.exe文件中,所以很难弄清哪些文件被搞混了。

有这个问题的机器今天上午(2012年8月15日)全部更新,更新如下(抱歉不张贴链接,作为一个新用户,我只限于每个帖子两个):

Microsoft Office 2007套件安全更新(KB2596615)

Microsoft Office 2007套件安全更新(KB2596754)

Microsoft Office 2007套件安全更新(KB2596856)

Microsoft Office 2007套件安全更新(KB2687441)

Microsoft Office Outlook 2007垃圾邮件筛选器更新(KB2687400)

Windows恶意软件删除工具x64 – 2012年8月(KB890830)

目前,我们还没有在MSDN网站上找到任何可以解决这个问题的信息。 我们仍然试图进一步隔离这一点。

我有同样的问题。 我得到了一个未指定的错误打开excel与我的加载项加载。 过去,删除C:\ Documents and Settings \%USERNAME%\ Application Data \ Microsoft \ Forms \中的* .exd文件已经成功了,但现在还没有。
当我试图打开我的插件中的表格,我得到了一个不同的错误,我无法打开表格。 我最终在更新之前回到昨晚,一切都恢复正常。

在执行Office 2007 Excel更新后,今天在这里出现同样的问题。 奇怪的是,尽管更新了最新的系统,但一个系统并没有问题。 所以经过一番检查,我注意到这个无故障的系统在windows \ sysWOW64中有不同版本的MSCOMCTL.OCX。 下面是这个activeX大小的细节:创建了1,070,152个字节:2012年6月3日修改:2012年6月6日产品版本:6.01.9834所以我复制这个麻烦之一,它做了伎俩。

此外,您可能需要检查这些应用程序扩展名是否存在于windows \ sysWOW64或windows \ system32中(对于32位系统FM20.DLL)(修改日期:2011年7月7日,版本12.0.6604.1000,1.13MB)FM20ENU.DLL (修改日期:10/24/2008,版本12.0.6413.1000,32.3KB)不知道你可以在哪里下载这些。 我从其他系统中分解了它们。

我们的终端服务器在昨晚的更新之后,也出现了同样的问题。 注册mscomctl.ocx解决了所有用户的问题。

取消和注册MSCOMCTL.ocx为我做了诡计:

  1. 打开一个管理级别的命令提示符。 单击开始,然后在运行命令行中键入RUN。 在Windows Vista和Windows 7上,您将看到CMD.EXE出现在快速搜索列表中。 用鼠标右键单击CMD.EXE,然后单击以管理员身份运行。 黑色命令提示符打开。

  2. 如果在64位计算机上,键入以下内容:regsvr32.exe / u C:\ Windows \ SysWOW64 \ MSCOMCTL.OCX

按Enter键,然后键入regsvr32.exe C:\ Windows \ SysWOW64 \ MSCOMCTL.OCX如果在32位计算机上键入以下内容:regsvr32.exe / u C:\ Windows \ System32 \ MSCOMCTL.OCX按ENTER键,然后键入
regsvr32.exe C:\ Windows \ System32 \ MSCOMCTL.OCX这样做后,您的Office程序应该再次工作。

另请参阅: http : //blogs.technet.com/b/the_microsoft_excel_support_team_blog/archive/2012/08/15/quot-unspecified-automation-error-quot-after-applying-ms12-060.aspx

一个枪的儿子…我重新注册C:\ Windows \ System32 \ MSCOMCTL.OCX和一切工作。 非常感谢所有那些指出。