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

Excel 2016-QAT和宏

  •  1
  • Helloguys  · 技术社区  · 6 年前

    我构建了一些宏并将VBA工程保存为.xlam(Excel加载项)文件。当我转到excel>文件>选项>快速访问工具栏(qat)>从左侧下拉菜单中选择“宏”时,宏(公共子菜单)可见。然后我可以将宏添加到qat中,这样用户可以单击工具图标来运行这些宏。

    我观察到一种非常奇怪的行为。这是以前的情况,一切正常。

    Quick Access Toolbar Customization VBA Editor

    这是后来的事。事情开始变得奇怪。

    QAT After Editor After

    唯一的区别是我将sub的参数类型从内置变量类型更改为自定义类类型。但我还没有运行宏。我刚输入密码。但是excel改变了我没有编辑的另外两个宏的显示(宏名是check()和checkandfix())。

    所以问题是:

    1)为什么我在输入代码时Excel图形用户界面会显示不同的格式?这似乎取决于我输入的变量类型?我不知道intellisense对excel用户界面有这么大的影响。

    2)为什么excel改变了另外两个我没碰过的sub的显示?

    顺便说一下,即使在计算机重新启动之后,这种行为也是可复制的。也就是说,我可以在string和csettings之间更改参数类型,并观察宏列表格式的相应更改。

    谢谢您!

    1 回复  |  直到 6 年前
        1
  •  0
  •   Helloguys    6 年前

    我终于明白了!

    每当代码引用未定义的数据类型时,qat自定义将不起作用。症状是:

    1)您将看到工作簿名称是列表中宏名称的前缀。在正常情况下,您只会看到宏名。

    2)如果将宏与QAT按钮关联。那个按钮坏了。每当你点击按钮,它就会说 无法运行宏“xxx”。宏在此工作簿中可能不可用,或者所有宏都可能被禁用 “。这是误导,因为宏在那里,所有宏都是允许的。

    您可能会问:“为什么您的代码引用一些未定义的数据类型?”这是因为我的代码引用了一些需要附加库(如“Microsoft脚本运行时”)的附加数据类型(如字典)。如果未手动配置库引用,则数据类型将变为“未定义”。

    我很惊讶程序没有抛出编译错误或运行时错误。相反,它给出的消息是“宏可能不可用于此工作簿”。