Excel 2016自定义任务窗格

我在多个Excel 2016文档中遇到一个CustomTaskPane问题。 我用我的WinForm用户控件创build并显示任务窗格

Dim cll As cMyControl = New cMyControl Private Sub ThisAddIn_Startup() Handles Me.Startup CustomTaskPanes.Add(cll, "Panel") End Sub 

这个面板我可以在所有的工作簿中看到。

 Private Sub Application_WorkbookActivate(Wb As Microsoft.Office.Interop.Excel.Workbook) Handles Application.WorkbookActivate CustomTaskPanes.RemoveAt(0) CustomTaskPanes.Add(cll, "Panel") End Sub 

问题是面板被创build,但是是空的。 有什么办法如何转移CustomTaskPanels之间的用户控制? 或者如何将创build的面板附加到另一个Excel窗口? 因为我不想为每个工作簿激活创build新的cll对象。

Excel 2016是一个SDI,然后您需要存储每个任务面板的参考。 您需要使用Globals.ThisAddIn.Application.Hwnd来识别Excel窗口。

看到这里的解决scheme: https : //stackoverflow.com/a/24732000/3205529