对于某些用户,安装2014年12月更新后,Forms Controls(FM20.dll)不再能按预期运行。有时会遇到问题,例如当他们使用表单控件使用现有VBA项目打开文件,尝试将表单控件插入新工作表或运行可能使用这些组件的第三方软件时。
您可能会收到以下错误:
“无法插入对象”“对象库无效或包含对找不到的对象定义的引用”
此外,当您尝试通过代码将ActiveX控件引用为工作表的成员时,您可能无法使用或更改工作表上ActiveX控件的属性或收到错误。
更新后要执行的步骤:
若要解决此问题,必须在客户端计算机上删除控件类型库(扩展文件)的缓存版本。为此,您必须在硬盘上搜索文件扩展名为“ .exd”的文件,并删除找到的所有.exd文件。下一次使用VBA时,使用新控件时将自动重新创建这些.exd文件。这些扩展程序文件将位于用户的个人资料下,也可能位于其他位置,例如:
%appdata%\ Microsoft \ forms
%temp%\ Excel8.0
%temp%\ VBE
脚本解决方案:
由于此问题可能会影响多台计算机,因此还可以创建脚本解决方案来删除EXD文件,并使用策略在登录过程中运行脚本。您需要的脚本应包含以下行,并且由于.exd文件是USER特定的,因此需要为每个USER运行。
删除%temp%\ vbe \ *。exd
删除%temp%\ excel8.0 \ *。exd
删除%appdata%\ microsoft \ forms \ *。exd
删除%appdata%\ microsoft \ local \ *。exd
删除%appdata%\ Roaming \ microsoft \ forms \ *。exd
删除%temp%\ word8.0 \ *。exd
删除%temp%\ PPT11.0 \ *。exd
附加步骤:
如果以上步骤不能解决您的问题,则可以测试另一步骤(请参阅下面的警告):
在完全更新的计算机上,并删除.exd文件后,请在具有编辑权限的Excel中打开文件。
打开Visual Basic for Applications>通过在任何代码模块中添加注释或某种形式的编辑来修改项目> Debug> Compile VBAProject。
保存并重新打开文件。测试分辨率。如果已解决,请将此更新的项目提供给其他用户。
警告:如果此步骤解决了您的问题,请注意,在将此更新的项目部署到其他用户之后,这些用户还需要将更新应用到他们的系统上,并同时删除.exd文件。
如果这不能解决您的问题,则可能是另一个问题,可能需要进一步的故障排除。
Microsoft当前正在解决此问题。观看博客以获取更新。