我运行的是 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/