C# Microsoft.Office.Tools.Excel.ApplicationFactory.GetVstoObject是否导致VBA内存泄漏?
下面是一个最小的VSTO项目示例,它强制Excel VBA环境显示错误“内存不足”,并导致VBA项目出现两次 问题:这是“GetVstoObject”方法中的错误吗。我怎样才能四处走动? 步骤:C# Microsoft.Office.Tools.Excel.ApplicationFactory.GetVstoObject是否导致VBA内存泄漏?,c#,excel,vba,com,vsto,C#,Excel,Vba,Com,Vsto,下面是一个最小的VSTO项目示例,它强制Excel VBA环境显示错误“内存不足”,并导致VBA项目出现两次 问题:这是“GetVstoObject”方法中的错误吗。我怎样才能四处走动? 步骤: 在Excel 2010中:创建新工作簿并按ALT+F11进入VBA环境 在VBA.ThisWorkBook中:创建一个空的新子文件夹 子测试() 端接头 将工作簿另存为Test.xlsm并退出Excel 在Visual Studio中创建新的Excel 2010加载项 将此addin.cs中的所有代码
- CTP翻了一番
- 如果按ALT+F11打开VBA,将出现“内存不足”错误
C#最小外接程序代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using Excel = Microsoft.Office.Interop.Excel;
using Office = Microsoft.Office.Core;
using Microsoft.Office.Tools.Excel;
namespace ExcelAddIn1
{
public partial class ThisAddIn
{
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
this.Application.WorkbookActivate += new Excel.AppEvents_WorkbookActivateEventHandler(Application_WorkbookActivate);
}
void Application_WorkbookActivate(Excel.Workbook Wb)
{
//This is the important line:
var activeVstoWorkbook = Globals.Factory.GetVstoObject(Wb);
}
#region VSTO generated code
private void InternalStartup()
{
this.Startup += new System.EventHandler(ThisAddIn_Startup);
}
#endregion
}
}