c# interop excel range 查找第一个和最后一个填充值

我有一个范围(一行),我想知道该范围内第一个和最后一个填充值的列位置。这就是我试图计算位置的方式。


var xlRange = (Excel.Range)currentSheet.Cells[10, 1].EntireRow; // 10th row.

long firstColumn= (long)xlRange.get_End(Excel.XlDirection.xlToRight).Column;

表看起来像这样:

http://img.mukewang.com/6199b81000017d2316380697.jpg

firstColumn 返回 8。这是正确的。但我不知道如何获取最后一个填充单元格的列位置。

long firstColumn= (long)xlRange.get_End(Excel.XlDirection.xlToRight).Column;

firstColumn当excel设置如下时返回12 :

http://img4.mukewang.com/6199b81e0001371709650341.jpg

我期待得到 1。

任何指针?


德玛西亚99
浏览 148回答 1
1回答

守着星空守着你

您可以使用 Excel 中可用的 SpecialCells 方法。 https://msdn.microsoft.com/en-us/vba/excel-vba/articles/range-specialcells-method-excel在您的情况下,您想找到最后一个单元格:xlCellTypeLastCell 没有值,即 Type.Missing。Excel.Range lastCell = workSheet.Cells.SpecialCells(XlCellType.xlCellTypeLastCell, Type.Missing); Excel.Range myRange = workSheet.get_Range("B1", lastCell);lastCell 应该给出它的行和列值。希望这可以帮助。
打开App,查看更多内容
随时随地看视频慕课网APP