Excel 加载宏的命令栏不显示或自动删除在 Excel 2013 或更高版本时加载或卸载外接程序

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 2761240
症状
在使用外接程序在 Microsoft Excel 2013 或更高版本时,您会遇到以下问题。

问题 1

当 Excel 外接 (.xlam) 或 Excel 97-2003年外接 (.xla) 加载时,不会自动显示命令栏外接程序。相反,必须关闭所有工作簿,然后重新启动 Excel 显示命令栏。

问题 2

当您卸载 Excel 外接 (.xlam) 或 Excel 97-2003年加载项 (.xla) 或关闭命令栏包含 Excel 的启用宏的工作簿 (.xlsm) 时,或启用宏的工作簿的命令栏不会从所有打开的工作簿。
原因
由于单文档界面 (SDI) 在 Excel 2013 或更高版本时出现这些问题。当使用旧的命令栏对象可以创建菜单项时,菜单项添加到功能区的加载项选项卡。在 Excel 2013 或更高版本,每个工作簿都有它自己的功能区。因此,当加载或卸载外接程序创建的工作簿的功能区后,功能区将不更新。

下面的代码示例通过使用 CommandBar 对象创建菜单项:
Application.CommandBars("Worksheet Menu Bar").Controls.Add Type:=msoControlPopup
替代方法
若要解决问题 1,请关闭所有打开的工作簿,然后重新启动 Excel。

若要解决问题 2,请使用下列方法之一:
  • 替换为命令栏外接程序或启用宏的工作簿中的功能区 (XML) 项。有关功能区 (XML) 的详细信息,请转到下面的 Microsoft 网站:
  • 在中 Workbook_BeforeClose 事件的外接程序或启用宏的工作簿时,循环访问所有打开的窗口,并删除命令栏。下面是一个代码示例:
    For Each wnd In Application.Windows        wnd.Activate        Application.CommandBars("<ToolbarName>").DeleteNext wnd
    注意: 在此代码中,占位符ToolbarName> 表示命令栏名称。

警告:本文已自动翻译

属性

文章 ID:2761240 - 上次审阅时间:09/23/2015 08:52:00 - 修订版本: 5.0

Microsoft Excel 2013, Excel 2016

  • kbaddin kbprb kbexpertiseadvanced kbsurveynew kbmt KB2761240 KbMtzh
反馈