我正在尝试使用对 interop.excel 而不是 vba 的引用来进行一些工作表格式设置。我的代码如下所示:
Dim lastrow As Range = excel.Rows.End(XlDirection.xlDown)
Dim findme As Range = excel.Range("A1:A" & lastrow)
excel.range 不允许我在这里使用“&”符号。我应该如何识别我的最后一行数据?
我正在尝试使用对 interop.excel 而不是 vba 的引用来进行一些工作表格式设置。我的代码如下所示:
Dim lastrow As Range = excel.Rows.End(XlDirection.xlDown)
Dim findme As Range = excel.Range("A1:A" & lastrow)
excel.range 不允许我在这里使用“&”符号。我应该如何识别我的最后一行数据?
查看Range Class Reference,您似乎错过了放置 Range 的Row
属性lastrow
:
Dim findme As Range = excel.Range("A1:A" & lastrow.row)
我知道这是一个旧线程,但有很多谷歌引用“糟糕的解决方案”,我认为这是获得 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)
lastrow 被定义为一个范围,您正在尝试在一个字符串和一个范围之间进行字符串连接。
它看着“A”。但要注意,如果有一个合并的单元格垂直,它将占据合并的顶部单元格。因此,如果有一个从 A15 到 A20 的合并单元格,这是该列的最后一个单元格,它会将 A15 分类为最后一个单元格,即使它的 A20 也是如此。在这种情况下,我发现 Neolisk 的解决方案是最好的。
@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