在工作表上找到最后使用过的单元格并将行复制到另一个工作表中?

时间:2016-12-08 08:21:18

标签: c# excel copy-paste

任何答复都会非常感激。 我的问题如下:

这是确定我的Excel工作表的最后一个非空单元格/行的正确方法吗?

xl.Worksheet sh;
        int lastRow;
        int fullRow;

        sh = xlApp.Workbooks.get_Item("myExcelFile").Worksheets.get_Item("MySheet");
        fullRow = sh.Rows.Count;
        lastRow = sh.Cells[fullRow, 1].End(xl.XlDirection.xlUp).Row;

如果这确实是正确的,我如何取出行并将其复制到另一个工作表中。更具体地说,A列的第一个空单元格。 我知道我必须使用类似这样的命令:

lastRow.EntireRow.Copy(FirstEmptyCell);

作为int类型我无法将其复制到我的其他工作表。 有什么建议吗?

1 个答案:

答案 0 :(得分:0)

lastRow = sh.Cells[fullRow, 1].End(xl.XlDirection.xlUp).Row;

此处,lastRowint,因此您不能将其用作下一行的对象:

lastRow.EntireRow.Copy(FirstEmptyCell); // int doesn't have an EntireRow property

可以做的是将两者合并为一行:

Excel.Range myLastRow;
myLastRow = sh.Cells[sh.Rows.Count, 1].End(xl.xlDirection.Up).EntireRow;

现在myLastRow是您要复制的整行。

myLastRow.Copy(destination);