我已经看到了类似的问题,但我发现的任何问题都没有解决我的具体情况。
我在Visual Studio 2010中有一个Excel 2007 COM加载项,用C#编写。当我将活动工作簿加载到功能区代码中的工作簿对象时,它工作正常。当我在Windows窗体中执行它时,它每次都会从activeworkbook返回null。
以下是我的using语句和错误不断发生的代码片段。
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Text;
using Office = Microsoft.Office.Core;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
using System.Drawing;
---------------------------------------------------
Excel.Application xlApp;
xlApp = (Excel.Application)Marshal.GetActiveObject("Excel.Application");
Excel.Workbook xlWkbk = (Excel.Workbook)xlApp.ActiveWorkbook;
Excel.Worksheet xlWksht = (Excel.Worksheet)xlWkbk.ActiveSheet;
非常感谢任何帮助!
答案 0 :(得分:0)
代码本身的工作时间只有当您的任务管理器列出了1个EXCEL.EXE进程时。
我怀疑您正在测试内容并且未正确处理EXCEL.EXE或没有错误处理,因此您将错误地处理错误的EXCEL.EXE进程。
添加错误处理程序并按照THIS ANSWER正确处理Excel。