'File Not Found: VBA6.dll' 错误 - 奇怪的行为
'File Not Found: VBA6.dll' Error - Strange Behaviour
我 运行宁 Windows 8 使用 Office 2013(64 位)。我正尝试在 Excel 中继续 VBA 的开发,我从 Office 2010(32 位)开始。我知道必要的 64 位更改,但是我收到了令人困惑的配置错误。
这是问题所在:
- 如果我创建一个新的 Excel 文件和 VBA 项目;我所有的 VBA 代码都能正常运行。没问题。
- 如果我打开并使用以前在 Office 2010 中 developed/used 的文件中的宏,我会收到一条 "File Not Found: VBA6.dll" 错误消息。
- 一旦我开始接收消息,我就会在所有 VBA 宏上接收它;即使是以前(不超过 30 秒)运行良好的新版本。
- 如果我随后重新创建一个新的 Excel 文件和新的 VBA 项目,那段新代码可以正常工作。没问题 - 直到我 运行 在其中一个 'error files' 中编码。然后故障蔓延到我的新发展中。
就好像 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 崩溃(每次)。
- 我还向 [具有相同系统配置] 的同事发送了一个 'bad file' 尚未收到此问题 - 他们也收到了错误。提示文件有问题?
编辑 2:
问题尚未解决。我希望反对票不会妨碍我回答的机会。
- 我也尝试过重新注册图书馆,但没有任何改变。
- 如果我打开 'bad file',我可以添加新的宏,它们工作正常;但是第二次我 运行 一个现有的宏并收到错误,新的宏也不起作用。
该错误是在安装 Office 2013(64 位)期间引起的。 VBA7 DLL 没有正确注册,所以我不得不打开 regedit 并在两者中手动输入正确的文件路径
- HKEY_CLASSES_ROOT\TypeLib{000204EF-0000-0000-C000-000000000046}\
- 6.0\win32
- 4.2\win32
将 Visual Basic for Applications 的 'C:\Windows\SysWOW64\msvbvm60.dll' 数据值(问题中提到的)替换为 VBA7 DLL 文件路径。在我的系统上是:
- C:\Program Files\Common Files\Microsoft Shared\VBA\VBA7.1\VBE7.dll
所有文件现在都可以使用;我希望这能解决未来其他人的问题。
我 运行宁 Windows 8 使用 Office 2013(64 位)。我正尝试在 Excel 中继续 VBA 的开发,我从 Office 2010(32 位)开始。我知道必要的 64 位更改,但是我收到了令人困惑的配置错误。
这是问题所在:
- 如果我创建一个新的 Excel 文件和 VBA 项目;我所有的 VBA 代码都能正常运行。没问题。
- 如果我打开并使用以前在 Office 2010 中 developed/used 的文件中的宏,我会收到一条 "File Not Found: VBA6.dll" 错误消息。
- 一旦我开始接收消息,我就会在所有 VBA 宏上接收它;即使是以前(不超过 30 秒)运行良好的新版本。
- 如果我随后重新创建一个新的 Excel 文件和新的 VBA 项目,那段新代码可以正常工作。没问题 - 直到我 运行 在其中一个 'error files' 中编码。然后故障蔓延到我的新发展中。
就好像 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 崩溃(每次)。
- 我还向 [具有相同系统配置] 的同事发送了一个 'bad file' 尚未收到此问题 - 他们也收到了错误。提示文件有问题?
编辑 2:
问题尚未解决。我希望反对票不会妨碍我回答的机会。
- 我也尝试过重新注册图书馆,但没有任何改变。
- 如果我打开 'bad file',我可以添加新的宏,它们工作正常;但是第二次我 运行 一个现有的宏并收到错误,新的宏也不起作用。
该错误是在安装 Office 2013(64 位)期间引起的。 VBA7 DLL 没有正确注册,所以我不得不打开 regedit 并在两者中手动输入正确的文件路径
- HKEY_CLASSES_ROOT\TypeLib{000204EF-0000-0000-C000-000000000046}\
- 6.0\win32
- 4.2\win32
将 Visual Basic for Applications 的 'C:\Windows\SysWOW64\msvbvm60.dll' 数据值(问题中提到的)替换为 VBA7 DLL 文件路径。在我的系统上是:
- C:\Program Files\Common Files\Microsoft Shared\VBA\VBA7.1\VBE7.dll
所有文件现在都可以使用;我希望这能解决未来其他人的问题。