以编程方式获取Excel列的最后一个非空单元格

我有excel表单,总是看起来像下面

A | B | C | | | | something here maybe 1 | x | k 2 | y | l 3 | z | n | j | | j | ... | | 

我想获得A列中最后一个非空单元格的值。 一个列总是从A6开始,一段时间后,而不是空的,但列B持续了一段时间。 这样做的结果是,如果我使用下面的代码:

 sh = app.Workbooks.get_Item("Workbook1.xlsx").Worksheets.get_Item("Sheet1"); fullRow = sh.Rows.Count; lastRow = sh.Cells[fullRow, 1].End(Excel.XlDirection.xlUp).Row; 

我得到最后一行有B非空的最后一行。 A开始为空的地方甚至可能是50行。 有没有办法用C#做到这一点,而不是遍历所有的值?

编辑

事实certificate,列A是基于列C,所以我应该检查C.事实certificate,C产生与A相同的结果也许是因为该函数。 幸运的是有一个D列没有相同的问题,所以如果我使用上面的代码改变1为4,它的作品就像一个魅力。

编辑:对不起,我最初误解了这个问题,感谢KekuSemau清理起来!

尝试:

 sh.Range["A1", sh.Cells[1,sh.Rows.Count]].End(Excel.XlDirection.xlDown).Value; 

另外,如果你知道列中没有空单元格,你可以使用CountA:

 var usedRows = xlApp.WorksheetFunction.CountA(xlWorkSheet.Columns[1]); 

资源