单文档界面与多文档界面
请注意,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 控件。
注意 :
- 所有 Excel 应用程序级窗口方法,事件和属性都不受影响。 (
Application.ActiveWindow
,Application.Windows
……) - 在 Excel 2013 及更高版本(SDI)中,所有工作簿级窗口方法,事件和属性现在都在顶级窗口中运行。可以使用
Application.Hwnd
检索此顶级窗口的句柄
要获取更多详细信息,请参阅此示例的来源: MSDN 。
这也会导致无模式用户表单出现问题。请参阅此处获取解决方案。