Excel 带有文件名的宏在 Office 2016 64 位中不起作用

Excel macro with filename doesn't work in Office 2016 64 bit

我有 Excel 文件是用 Office 2016 32 位制作的,今天我更新到 Office 2016 64 位版本。现在,我的带有工作宏的文件无法部分工作。我收到以下消息:

编译错误:找不到项目或库

iFileName = ThisWorkbook.Path & "\CV_" & ['Filling form'!F7] & "_" & ['Filling form'!F9] & ".xls"

Excel 2016 64 位不喜欢 ['Filling form'!F7]['Filling form'!F9]

应该是什么?

不得不说我从未在 VBA 中使用过这种形式的引用 - 不知道您也可以添加 sheet 引用。

尝试:

Sub Test()

    Dim wrkSht As Worksheet
    Dim iFileName As String

    Set wrkSht = ThisWorkbook.Worksheets("Filling form")
    iFileName = ThisWorkbook.Path & "\CV_" & wrkSht.Range("F7") & "_" & wrkSht.Range("F9") & ".xls"

End Sub

问题可能是您在 VBA 32 位中使用了 Object Library Reference,现在需要 64 位对象库参考。

  • 从“工具”菜单中选择“引用”以显示“引用”对话框。

将 64 位列表与 32 位参考列表进行比较。并检查是否有缺失的引用。

您的 32 位对象库可能不存在 64 位版本。
在这种情况下,您的项目与 64 位 Office 不兼容,如果不将这部分替换为替代解决方案,则无法将您的项目转换为 64 位 Office。

这可能是您在 32 位版本中使用的参考库在 64 位版本中不存在。在 VBA window 中,转到 "Tools" -> "References" 并检查是否缺少任何库:

我认为查看是否缺少任何内容的最佳方法是比较 excel sheet 的 32 位和 64 位版本的 Excel。