gpt4 book ai didi

c# - 启动时不发生 Excel VSTO NewWorkbook 事件

转载 作者:行者123 更新时间:2023-11-30 12:29:43 26 4
gpt4 key购买 nike

我正在开发 Excel 2010 应用程序级插件。我需要为一些与 Workbook 接口(interface)连接的应用程序事件编写处理程序,尤其是 NewWorkbook 事件。

所以在 ThisAddIn_Startup 处理程序中,我添加了如下代码:

Microsoft.Office.Interop.Excel.AppEvents_Event app = Globals.ThisAddIn.Application;
app.NewWorkbook += MyApp_NewWorkbook;

在运行的 Excel 实例中创建新工作簿时,它工作正常。但是当我运行新的 Excel 实例(在标准情况下,这意味着创建新的工作簿)时,我的处理程序不会捕获此事件。我想当我运行新的 Excel 实例时,NewWorkbook 事件发生在 ThisAddIn_Startup 事件之前。

如果 WorkbookOpen 事件应用程序的行为与我预期的一样 - 当我在正在运行的 Excel 实例中打开现有的 Workbook 以及双击该文件时,事件就会被捕获。我想知道为什么这些事件的处理方式不同?

遇到这种情况怎么办?无论 Excel 是否已在运行,我都需要识别是创建了新工作簿还是打开了现有工作簿。

最佳答案

如何对加载项加载时打开的所有工作簿执行操作?

ThisAddIn_Startup 处理程序中的类似以下内容? (这里没有IDE,所以手写):

foreach (var workbook in Globals.ThisAddIn.Application.Workbooks)
{
// Do your thing
}

然后使用您的事件处理来捕获随后打开的所有工作簿。

关于c# - 启动时不发生 Excel VSTO NewWorkbook 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18084055/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com