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

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

这是确定我的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); 

作为一个inttypes,我不能将其复制到我的其他表。 有什么build议么?

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

在这里, lastRow是一个int所以你不能在下一行使用它作为一个对象:

 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);