【问题标题】:Excel/VBA Automation Errors due to Office Service Pack 3.0 caused by Forms由于 Office Service Pack 3.0 导致的 Excel/VBA 自动化错误
【发布时间】:2012-08-11 20:52:14
【问题描述】:

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

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

发生了什么事,我怎样才能让表单工作?所有代码都没有改变,并且在所有以前的 windows/office 更新中都幸存下来。运行 Windows 7(在 Vista 机器上也是如此)和 Office 2007。

【问题讨论】:

    标签: windows excel vba ms-office windows-update


    【解决方案1】:

    我以前经常在Visual Basic and Crystal Reports 上看到这个;可能是由于部署不当或DLL Hell

    所以,我的猜测是,您使用的可能不是代码,而是某些第 3 方控件(OCX、DLL)。

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

    查看库上的任何日期是否与正常工作的机器不同,您可能会找到罪魁祸首。


    编辑

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

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

    regsvr32 /u mscomctl.ocx 
    

    然后注册:

    regsvr32 mscomctl.ocx
    

    【讨论】:

    • 不能直接比较,但我发现的唯一关键区别是“Microsoft Windows Common Controls 6.0 (SP6) MSCOMCTL.OCX,在更新的(并且不工作)机器上的日期为 6/6/12和 2011 年 4 月 11 日在“旧”一个上。不使用任何 3rd 方控件,并且在 Windows 更新运行之前一切正常。
    • @Rob 我认为将日期与文件进行比较会非常简单,但 evs. Mscomctl.ocx 在昨天(8 月 14 日)的安全更新中,您说您刚刚在计算机上安装了最新更新。可能是问题,也可能不是,但由于这在过去 24 小时内发生了变化,您可能想尝试卸载特定更新或取消注册新的 ocx,然后注册“工作控制”。可能需要 5 分钟才能确定这是否是您的问题。
    • 比较日期很尴尬,因为机器不相同,而且一些数据戳似乎取决于之前运行的确切更新时间。正如您所说,注销和注册效果很好。
    【解决方案2】:

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

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

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

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

    【讨论】:

      【解决方案3】:

      AutoCAD 的 VBA 也存在同样的问题。就我而言,使用 regsvr32 注册新的 mscomctl.ocx 足以解决问题。

      【讨论】:

      • 确实,您只需要以管理员身份运行“regsvr32 /u mscomctl.ocx”和“regsvr32 mscomctl.ocx”即可。
      【解决方案4】:

      我们无法通过重新注册 mscomctl.ocx 来解决问题。 但是我们通过删除一个调用 mscomctl.ocx 的“进度条对象表单”来解决它......我们用 application.statusbar 替换它。

      【讨论】:

        【解决方案5】:

        查看http://support.microsoft.com/kb/2687441 以获取可能解决此问题的更新

        【讨论】:

          【解决方案6】:

          我们有同样的问题。在我们的加载项中,我们能够将问题追溯到作为 Excel.Application 的变量声明。对该对象的引用位于 Excel.exe 文件中,因此不清楚哪些文件被弄乱了。

          今天早上(2012 年 8 月 15 日)有这个问题的机器都更新了以下更新(抱歉没有发布链接,作为一个新用户,我每个帖子仅限两个):

          Security Update for Microsoft Office 2007 suites (KB2596615)

          Security Update for Microsoft Office 2007 suites (KB2596754)

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

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

          Microsoft Office Outlook 2007 垃圾邮件过滤器更新 (KB2687400)

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

          目前,我们在 MSDN 网站上没有找到任何可以澄清这一点的信息。我们仍在努力将其进一步隔离。

          【讨论】:

            【解决方案7】:

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

            【讨论】:

              【解决方案8】:

              执行 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(修改日期:7/7/2011,版本 12.0.6604.1000,1.13MB) FM20ENU.DLL(修改日期:10/24/2008,版本 12.0.6413.1000,32.3KB) 不知道在哪里可以下载这些。我从其他系统中蚕食了它们。

              【讨论】:

                【解决方案9】:

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

                【讨论】:

                  【解决方案10】:

                  取消并注册 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 回车然后输入
                  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

                  【讨论】:

                    【解决方案11】:

                    枪之子...我重新注册了 C:\Windows\System32\MSCOMCTL.OCX 并且一切正常。非常感谢所有指出这一点的人。

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2014-07-18
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多