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

标签 vba excel dll

我运行的是 Windows 8 和 Office 2013(64 位)。我正在尝试继续从 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 而突然决定所有文件都必须使用 VBA6?

非常感谢任何能治愈我困惑的东西,

致以诚挚的问候

编辑:我差点忘了提及;

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

编辑2:

问题还没有解决。我希望否决票不会妨碍我获得答案的机会。

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

最佳答案

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

  • HKEY_CLASSES_ROOT\TypeLib{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

所有文件现在都可以工作;我希望这可以解决将来其他人的问题。

关于vba - “找不到文件 : VBA6. dll”错误 - 奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27859839/

相关文章:

java - 如何使用 JNI 使用 java 程序运行 c 程序

vba - Excel VBA从公式中删除等号

ms-access - 无法使用 VBA 清除办公室剪贴板

Excel VBA 复制粘贴到单元格中不会触发 worksheet_change

html - VBA:从 HTML 中获取数据

c++ - 引用是跨二进制边界工作的,还是必须使用指针?

dll - 尽管加载了私有(private) pdb 文件,WinDBG 不显示源代码行

c++ - 对应于C++的MAKEWORD(2,2)的VBA值?

VBA 仅在 Debug模式下运行

arrays - Excel 将单个数组拆分为多个单元格