单文档界面与多文档界面

请注意,Microsoft Excel 2013(及更高版本)使用单文档界面(SDI),Excel 2010(及以下版本)使用多文档界面(MDI)。

这意味着对于 Excel 2013(SDI),单个 Excel 实例中的每个工作簿都包含自己的功能区 UI:

http://i.stack.imgur.com/VY2TA.jpg

相反,对于 Excel 2010,单个 Excel 实例中的每个工作簿都使用通用功能区 UI(MDI)http://i.stack.imgur.com/I4Dv1.jpg

如果要迁移与功能区交互的 VBA 代码(2010 < - > 2013),则会引发一些重要问题。

必须创建一个过程,以便在 Excel 2013 及更高版本的所有工作簿中更新处于相同状态的功能区 UI 控件。

注意 :

  1. 所有 Excel 应用程序级窗口方法,事件和属性都不受影响。 (Application.ActiveWindowApplication.Windows ……)
  2. 在 Excel 2013 及更高版本(SDI)中,所有工作簿级窗口方法,事件和属性现在都在顶级窗口中运行。可以使用 Application.Hwnd 检索此顶级窗口的句柄

要获取更多详细信息,请参阅此示例的来源: MSDN

这也会导致无模式用户表单出现问题。请参阅此处获取解决方案。