我有一些Excel工作表,使用ActiveX复选框来控制某些活动 . 他们最近工作但今天开始出错 . 我被一位同事告知了这一点,但它仍然在我的电脑上工作 . 我检查了他的Excel版本,我的版本更新了 . 我注意到有新的Windows更新,所以我做了更新 . 应用挂起的更新后,它现在不再适用于我的计算机 . 我不能再检查ActiveX复选框,并且,作为尝试调试的一部分,它似乎我甚至无法将ActiveX控件添加到任何工作表,甚至是新的工作表 . 我收到一个错误对话框,上面写着“无法插入对象” . (我仍然可以添加表单控件,而不是ActiveX . )最近更新后遇到此问题的其他人?有什么建议?
谢谢,
麦克风
11 回答
从其他论坛,我了解到这是由于MS更新,一个很好的解决方法是从用户配置文件中的任何Temp子文件夹中删除文件MSForms.exd . 例如:
C:\Users\[user.name]\AppData\Local\Temp\Excel8.0\MSForms.exd
C:\Users\[user.name]\AppData\Local\Temp\VBE\MSForms.exd
C:\Users\[user.name]\AppData\Local\Temp\Word8.0\MSForms.exd
当然必须关闭应用程序(Excel,Word ...)才能删除此文件 .
这是我在Microsoft Excel支持团队博客上找到的最佳答案
Source
这是KB2553154 . Microsoft需要发布修复程序 . 作为Excel应用程序的开发人员,我们无法访问所有客户端计算机并从中删除文件 . 我们因微软引起的事情而受到指责 .
我是一名Excel开发人员,当发生这种情况时,我确实感到痛苦 . 幸运的是,我能够通过在VBA中重命名MSForms.exd文件找到解决方法,即使在Excel运行时也可以解决问题 . 需要分发其电子表格的Excel开发人员可以将以下VBA代码添加到其电子表格中,以使其免受MS更新的影响 .
将此代码放在任何模块中 .
RenameMSFormsFiles子例程尝试将
C:\Users\[user.name]\AppData\Local\Temp\Excel8.0\
和C:\Users\[user.name]\AppData\Local\Temp\VBE\
文件夹中的MSForms.exd文件重命名为MSForms - Copy.exd .然后在Workbook_Open事件的最开始调用RenameMSFormsFiles子例程 .
电子表格将在打开时尝试重命名MSForms.exd文件 . 显然,这不是一个完美的固定:
在第一次打开电子表格时,受影响的用户在运行VBA代码时仍会遇到ActiveX控件错误 . 只有在执行一次VBA代码并重新启动Excel后,问题才得以解决 . 通常,当用户遇到损坏的电子表格时,下意识反应是关闭Excel并尝试再次打开电子表格 . :)
每次打开电子表格时都会重命名MSForms.exd文件,即使MSForms.exd文件没有问题也是如此 . 但电子表格可以正常工作 .
至少目前,Excel开发人员可以继续使用此解决方法分发他们的工作,直到Microsoft发布修复程序 .
我发布了这个解决方案here .
在Windows 8.1中,我无法使用Windows搜索找到任何.exd文件 . 另一方面,cmd命令 *dir .exd /S 在我的系统上找到了一个文件 .
KB及以上的建议对我不起作用 . 我发现如果一个Excel 2007用户(有或没有安全更新;不确定导致此问题的确切情况)保存文件,则原始错误将返回 .
我发现再次修复文件的最快方法是删除所有VBA代码 . 保存 . 然后替换VBA代码(复制/粘贴) . 保存 . 在尝试此操作之前,我首先删除.EXD文件,否则我在打开时会收到错误 .
就我而言,我无法在不同位置升级/更新我的Excel文件的所有用户 . 由于在一些用户保存Excel文件后问题回来了,我将不得不用其他东西替换ActiveX控件 .
最终用户的简化说明 . 随意复制/粘贴以下内容 .
以下是解决问题的方法:
关闭所有Office程序和文件 .
打开Windows资源管理器并在地址栏中键入%TEMP%,然后按Enter键 . 这将带您进入系统临时文件夹 .
找到并删除以下文件夹:Excel8.0,VBE,Word8.0
现在尝试再次使用您的文件,它应该没有任何问题 .
您可能需要等到问题发生才能使此修复工作 . 过早地应用它(在Windows Update安装到您的系统之前)将无济于事 .
有关此问题的最佳信息和更新来源,请访问TechNet博客»Microsoft Excel支持团队博客(如上所述):
Form Controls stop working after December 2014 Updates (Updated March 10, 2015)
On March 2015 a hotfix was released 除了自动修复程序和手动指令外,它也可以在Windows Update上使用 .
Microsoft的最新更新和修复:3025036 "Cannot insert object" error in an ActiveX custom Office solution after you install the MS14-082 security update
有关问题的一般信息:
手册和其他解决方案:
我终于在官方微软KB上找到了这个答案:
http://support.microsoft.com/kb/3025036/EN-US
这里没有新信息,而不是我们之前的答案,但是至少它承认微软知道这个问题 .
我知道已经发布了很多答案,但是没有一个答案可以独立地为我的网站工作 . 所以这对我有用:
步骤1:卸载以下更新 - KB2920789,KB2920790,KB2920792,KB2920793,KB2984942,KB2596927
步骤2:隐藏这些更新,以便在后续重新启动时不会安装它们
步骤3:从C:\ Users \ <> \ AppData \ Local \ Temp中删除文件夹Excel8.0
第4步:重新启动workstatiion(我还要确保上面提到的KB不会无意中被应用)
我想提供一个对我来说唯一有用的答案(我意识到我可能是唯一的一个) . 我在一个宏中使用功能区调用了 . 它有以下代码:
我不知道它会抛出一个错误,所以我感到困惑,并在这里尝试了一切 . 按钮刚停止工作,我无法让它工作 . 当我注意到错误并将其更正为:
它又开始工作了 . 如果你问我这绝对奇怪,但也许它可以帮助那些和我一样绝望的人 .