2

我有一个带有 xml 功能区的应用程序级 Excel VSTO 插件。目前,在同一个 Excel 实例中打开两个或多个工作簿时,所有工作簿共享同一个功能区实例。

这是一个问题,因为 Ribbon 类中有某些变量的值对于每个工作簿应该不同。由于只创建了该 Ribbon 类的一个实例,因此当工作簿工作表上的特定操作导致变量值更改时,该值也会更改为其他打开的工作簿。然而,这不应该发生。

有什么方法可以在每次打开新工作簿时创建一个新的 Ribbon 实例?

4

1 回答 1

1

不,不可能在 Excel 应用程序的单个实例中创建功能区的文档或窗口特定实例。

您的代码将需要跟踪事件,例如Workbook.OpenWorkbookActivate确定不同的工作簿何时是用户正在使用的工作簿。功能区 UI 的使用InvalidateInvalidateControl方法触发回调以根据需要更改功能区控件状态以反映工作簿的设置。

于 2016-06-21T17:12:39.577 回答