从 2010 年导入后,宏不会在 Excel 2016 年编译

Macros don't compile in Excel 2016 after import from 2010

我正在使用/我开发了一个 VBA 加载项,将在 Excel 2010 年使用。该加载项在 2010 年按预期运行。在 Excel 2016 年但是,根据打开的电子表格类型刷新此加载项菜单上可用选项的宏不会更新。我已经重新检查了代码,内容和2010年的一样。如果我在2016年尝试重新编译部分代码,我会得到编译错误。

错误标记为红色的代码例如:

VERSION 1.0 CLASS


Attribute VB_Name = "ClsXXX"

Attribute VB_GlobalNameSpace = False

Attribute VB_Creatable = False

Attribute VB_PredeclaredId = False

Attribute VB_Exposed = False

到目前为止我做了什么:

Visual Basic For Applications C:\PROGRA~2\COMMON~1\MICROS~1\VBA\VBA7\VBE7.DLL Microsoft Excel 14.0 对象库 C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE OLE 自动化 C:\Windows\SysWOW64\stdole2.tlb Microsoft Office 14.0 对象库 C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE14\MSO.DLL

Office 2016

Visual Basic For Applications C:\PROGRA~2\COMMON~1\MICROS~1\VBA\VBA7.1\VBE7.DLL Microsoft Excel 16.0 对象库 C:\Program Files (x86)\Microsoft Office\Office16\EXCEL.EXE OLE 自动化 C:\Windows\SysWOW64\stdole2.tlb Microsoft Office 16.0 对象库 C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE16\MSO.DLL

一些关于如何处理我的问题的建议?

此致,

看起来你 "imported" 文件走错了:
您似乎复制并粘贴了文件的 contents,而您应该做的是真正的 import 文件:

For import right click on the Project Window and select Import file …

导入这些行后……

VERSION 1.0 CLASS   
Attribute VB_Name = "ClsXXX"
Attribute VB_GlobalNameSpace = False   
Attribute VB_Creatable = False   
Attribute VB_PredeclaredId = False   
Attribute VB_Exposed = False

不应再出现在代码中,但这些行在导入过程中用作 class 名称和属性。