'找不到文件:VBA6.dll'错误 - 奇怪的行为

时间:2015-01-09 11:44:21

标签: excel vba excel-vba dll

我正在使用Office 2013(64位)运行Windows 8。我正在尝试继续使用Office 2010(32位)开始的Excel中的VBA开发。我知道必要的64位更改但是我收到了令人困惑的配置错误。

问题在于:

  • 如果我创建一个新的Excel文件和VBA项目;我的所有VBA代码都正常运行。没问题。
  • 如果我打开并使用之前在Office 2010中开发/使用的文件中的宏,则会收到“找不到文件:VBA6.dll”错误消息。
  • 一旦我开始收到消息,我会在所有VBA宏上收到它;即使是那些(不超过30秒)以前工作正常的新品。
  • 如果我然后重新创建一个新的Excel文件和新的VBA项目,那么单个新代码就能正常工作。没有问题 - 直到我在其中一个'错误文件'中运行代码。然后故障蔓延到我的新发展中。

好像Excel的引用很混乱,但每次检查它们时(好的或坏的文件)它们总是完全一样。

注意:

  • 我的参考文献都没有丢失。
  • 我的系统上没有VBA6.dll;我有VBA7和'Visual Basic for Application'参考也指'C:\ Windows \ SysWOW64 \ msvbvm60.dll'
  • 列表中还有另外两个“Visual Basic for Application”引用,但它不会让我更改它们
  • 它适用于没有VBA6.dll的新文件,所以我认为不需要它?
  • 我已检查并安装了所有最新的Windows更新。

如何解决此问题?

  • 如果您认为我需要VBA6.dll,那是因为引用的库使用它吗?
  • 如果是这样,为什么他们不使用VBA7?
  • 为什么在打开旧的VBA6文件之前它可以正常工作? Excel是否突然决定所有文件必须使用VBA6只是因为之前有一个文件?

非常感谢任何让我感到困惑的事情,

祝你好运

编辑:我差点忘了提及;

  • 当我在收到错误后尝试调试错误时,Excel会崩溃(每次)。
  • 我还向[同一系统配置]尚未收到此问题的同事发送了“错误文件” - 他们也收到了错误消息。建议文件有问题吗?

编辑2:

问题尚未解决。我希望downvote不会妨碍我回答的机会。

  • 我也尝试重新注册库,但没有任何改变。
  • 如果我打开'坏文件',我可以添加新的宏,它们工作正常;但第二个我运行现有的宏并收到错误,新的宏也不起作用。

1 个答案:

答案 0 :(得分:7)

在Office 2013(64位)安装期间导致该错误。 VBA7 DLL未正确注册,因此我必须打开regedit并在两者中手动输入正确的文件路径

  • HKEY_CLASSES_ROOT \类型库{000204EF-0000-0000-C000-000000000046} \
    • 6.0 \ 9 \ WIN32
    • 4.2 \ 9 \ WIN32

将Visual Basic for Applications的'C:\ Windows \ SysWOW64 \ msvbvm60.dll'数据值(在问题中提到)替换为VBA7 DLL文件路径。在我的系统上是:

  • C:\ Program Files \ Common Files \ Microsoft Shared \ VBA \ VBA7.1 \ VBE7.dll

现在所有文件都有效;我希望这能解决将来其他任何人的问题。