【问题标题】:Delete first row in Excel Workbook - Object Reference required error c#删除 Excel 工作簿中的第一行 - 需要对象引用错误 c#
【发布时间】:2018-04-04 08:46:09
【问题描述】:

我一直在使用“代码项目”和“Stackoverflow”来创建一个脚本,该脚本将删除指定 Excel 工作簿的第一行。

我遇到了第 13 行“Range.EntireRow;”的问题出现错误“非静态字段、方法或属性 Range.Entire.Row 需要对象引用

请看下面我创建的脚本;

        public void DeleteRows(string workbookPath)
    {

        // New Excel Application 
        Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
        //Open WorkBook 
        Microsoft.Office.Interop.Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(workbookPath,
                0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "",
                true, false, 0, true, false, false);

        Microsoft.Office.Interop.Excel.Sheets excelSheets = excelWorkbook.Worksheets;
        string currentSheet = "Sheet1";
        Microsoft.Office.Interop.Excel.Worksheet excelWorksheet = (Microsoft.Office.Interop.Excel.Worksheet)excelSheets.get_Item(currentSheet);

        Microsoft.Office.Interop.Excel.Range excelCell = (Microsoft.Office.Interop.Excel.Range)excelWorksheet.get_Range("A1", "A1");
        Microsoft.Office.Interop.Excel.Range row = Range.EntireRow; //ERROR Line
        row.Delete(Microsoft.Office.Interop.Excel.XlDirection.xlUp);

任何有关如何解决此错误的建议将不胜感激。

【问题讨论】:

  • 首先猜测不是 Range.EntireRow 你需要 excelCell.EntireRow .. "Range" 不知道选择哪个范围
  • 感谢完美!

标签: c# excel object


【解决方案1】:

您可以参考RangeCells 来获取整行:

Microsoft.Office.Interop.Excel.Range row = excelCell.Cells.EntireRow

甚至省略Cells 也可以:

Microsoft.Office.Interop.Excel.Range row = excelCell.EntireRow

MSDN Range.EntireRow Property

【讨论】:

    【解决方案2】:

    你应该使用:Microsoft.Office.Interop.Excel.Range row = excelCell.EntireRow;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多