在excel中查找最后一行并使用excel.range

时间:2012-10-31 23:53:41

标签: vb.net

我试图使用interop.excel而不是vba的引用来做一些工作表格式化。我的代码如下:

    Dim lastrow As Range = excel.Rows.End(XlDirection.xlDown)
    Dim findme As Range = excel.Range("A1:A" & lastrow)

excel.range不允许我使用“&”象征在这里。我该如何识别我的最后一行数据?

5 个答案:

答案 0 :(得分:2)

查看Range Class Reference,您似乎错过了Row范围的lastrow属性:

Dim findme As Range = excel.Range("A1:A" & lastrow.row)

答案 1 :(得分:2)

我知道这是一个老线程,但有很多谷歌参考“坏解决方案”,我认为这是获得lasCell的优雅解决方案

set lastCell=yourSheet.Range("A1").SpecialCells(xlCellTypeLastCell)

所以你的代码可能是:

Dim lastrow As Range = excel.Range("A1").SpecialCells(xlCellTypeLastCell).Row
Dim findme As Range = excel.Range("A1:A" & lastrow)

答案 2 :(得分:0)

lastrow被定义为一个Range,你试图在一个字符串和一个Range之间进行字符串连接。

答案 3 :(得分:0)

它看着“A”。但要注意,如果合并的单元格垂直,则需要合并的顶部单元格。因此,如果合并的单元格从A15到A20(该列的最后一个单元格),则它将A15分类为最后一个单元格,即使它是A20。我发现Neolisk的解决方案在这种情况下是最好的。

答案 4 :(得分:0)

@Jason Bayldon它在有一个条目的最后一行结束。它也会跳过空白。我正在使用VB.NET 2010.这是示例代码。

Dim r2 As Excel.Range
Dim lastrow As Integer

r2 = oSheet.Range("Task_ID") 'Task_ID is my column name
lastrow = r2.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row 'returns last row