代码之家  ›  专栏  ›  技术社区  ›  SocketM

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

  •  -1
  • SocketM  · 技术社区  · 7 年前

    我正在使用/我已经开发了一个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
    

    我到目前为止所做的:

    • 启用在Excel 2016中运行宏;
    • 在Excel的可信源中添加我的xlam的位置;
    • 比较使用的资源:

      Office 2010

    Visual Basic For Applications C:\PROGRA 2\COMMON 1\MICROS 1\VBA\VBA7\VBE7。动态链接库 Microsoft Excel 14.0对象库C:\Program Files(x86)\Microsoft Office\Office14\Excel。EXE文件 OLE Automation C:\Windows\SysWOW64\stdole2。tlb Microsoft Office 14.0对象库C:\Program Files(x86)\Common Files\Microsoft Shared\OFFICE14\MSO。动态链接库

    2016年办公室

    Visual Basic For Applications C:\PROGRA 2\COMMON 1\MICROS 1\VBA\VBA7.1\VBE7。动态链接库 Microsoft Excel 16.0对象库C:\Program Files(x86)\Microsoft Office\Office16\Excel。EXE文件 OLE Automation C:\Windows\SysWOW64\stdole2。tlb Microsoft Office 16.0对象库C:\Program Files(x86)\Common Files\Microsoft Shared\OFFICE16\MSO。动态链接库

    就如何处理我的问题提出一些建议?

    真诚地

    1 回复  |  直到 7 年前
        1
  •  3
  •   Pᴇʜ    7 年前

    看起来您以错误的方式“导入”了文件:
    您似乎复制了&粘贴 目录 而你应该做的是 进口 文件的数量:

    要导入,请右键单击 项目窗口 并选择 导入文件

    导入这些行之后

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

    不应再出现在代码中,但这些行在导入期间用作类名和属性。