Excel изменить значение ячейки активного листа

Для плагина Excel 2010 мне нужен метод для изменения значений ячеек активной рабочей таблицы.

Этот код работает, но открывает новое окно Excel. Как я могу изменить это, чтобы редактировать значения из активного листа?

Microsoft.Office.Interop.Excel.Application objApp;
Microsoft.Office.Interop.Excel.Workbook objBook;

Microsoft.Office.Interop.Excel.Sheets objSheets;
Microsoft.Office.Interop.Excel._Worksheet workSheet;


objApp = (Microsoft.Office.Interop.Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");
objApp.Visible = true;
objBook = (Microsoft.Office.Interop.Excel.Workbook)objApp.ActiveWorkbook;

if (objBook == null)
    {
       objBook = objApp.Workbooks.Add();
    }

// get the collection of sheets in the workbook

objSheets = objBook.Worksheets;

// get the first and only worksheet from the collection of worksheets

workSheet = (Microsoft.Office.Interop.Excel.Worksheet)objSheets.get_Item(1);

workSheet.Cells[1, "A"] = "wert1";

1 ответ

Теперь я нашел решение:

Microsoft.Office.Interop.Excel.Workbook objBook;
Microsoft.Office.Interop.Excel.Sheets objSheets;
Microsoft.Office.Interop.Excel._Worksheet workSheet;

objBook = (Workbook)Globals.ThisAddIn.Application.ActiveWorkbook;

if (objBook == null)
    {
       objBook = objApp.Workbooks.Add();
    }

// get the first and only worksheet from the collection of worksheets

workSheet = (Microsoft.Office.Interop.Excel.Worksheet)objBook.ActiveSheet;

workSheet.Cells[1, "A"] = "value1A";

Источник: http://www.dreamincode.net/forums/topic/199576-getting-current-excel-application-or-workbook-in-c%23/

Другие вопросы по тегам