0
对于Excel 2010插件,我需要一种方法来更改活动工作表的单元格值。Excel更改活动工作表的单元格值
此代码有效,但会打开一个新的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";
你的代码是有点不对劲,当你调用'objSheets.get_Item(1)'是越来越第一'Workbook'中的'Worksheet',当时可能不是'Active Sheet'。这样做的正确方法是说'objBook.ActiveSheet'。如果没有工作表为“活动”,这将返回活动工作表或“Nothing”。 –
是的,这样比较好。我已经更新了我的答案。 – NewDeveloper
除非实际需要访问'Workbook'中的'Worksheets'的其余部分,否则您还可以移除objSheets = objBook.Worksheets'调用,因为这会对interop造成不必要的调用。 –