我制作了一个 Excel COM 加载项。现在我想控制 WorkbookBeforeClose 事件。
但是我在 Stackoverflow 上找到的解决方案(使用事件处理程序 WorkbookOpen 的 c#)不适用于我。
在我的加载项中没有 InternalStartup Sektion,只有一个 Load Sektion。
我只能通过按下功能区栏中的按钮来启动事件处理程序。
当我按下按钮 1x 时,事件处理程序会执行我想要的所有时间 Excel 加载。
当 Excel 关闭并重新启动时,我必须再次按下按钮。
有没有一种方法可以在 Excel 加载第一个空工作簿时启动事件处理程序???
有什么帮助或任何解决方案吗???
感谢和问候
斯蒂芬
这是我用于 EventHandler 的代码:
public partial class Excel2SE
{
Excel.AppEvents_WorkbookBeforeCloseEventHandler EventDel_BeforeBookClose;
private void Excel2SE_Load(object sender, RibbonUIEventArgs e)
{
EventDel_BeforeBookClose = new Excel.AppEvents_WorkbookBeforeCloseEventHandler(BeforeBookClose);
}
private void btn_Start_Click(object sender, RibbonControlEventArgs e)
{
wbEventhandlerStart();
}
private void wbEventhandlerStart()
{
Excel.Application app = (Excel.Application)Marshal.GetActiveObject("Excel.Application");
app.WorkbookBeforeClose += EventDel_BeforeBookClose;
}
// This Works when Excel Close
private void Excel2SE_Close(object sender, EventArgs e)
{
MessageBox.Show("Excel close");
}
// This works after Pushing the Start Button and the Workbook Close
private void BeforeBookClose(Excel.Workbook Wb, ref bool Cancel)
{
MessageBox.Show("WB close");
}