EXCEL-VBA更好的方法来查找最后一行

Ale*_*eno 7 excel vba

我试图通过这种方式找到最后一行,因为我找到了最后一列:

Sheets("Sheet2").Cells(1,Sheets("Sheet2").Columns.Count).End(xlToLeft).Column`enter code here`
Run Code Online (Sandbox Code Playgroud)

我知道如何这样做,但它不像以前那样有用:

u = Sheets("Sheet1").Range("A65536").End(xlUp).Row
Run Code Online (Sandbox Code Playgroud)

我试过这样做:

Sheets("Sheet2").Cells(Sheets("Sheet2",1).Rowa.Count).End(xlToUP).Column
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

剧情简介:想要最后一行的下面的方式.谢谢

Sheets("Sheet2").Cells(1,Sheets("Sheet2").Columns.Count).End(xlToLeft).Column`enter code here`
Run Code Online (Sandbox Code Playgroud)

小智 14

您应该使用with语句来限定您的计数RowsColumns计数.这将防止在使用较旧的2007年前版和较新的2007 Excel工作簿时出现任何错误.

最后一栏

With Sheets("Sheet2")
    .Cells(1, .Columns.Count).End(xlToLeft).Column
End With 
Run Code Online (Sandbox Code Playgroud)

最后一行

With Sheets("Sheet2")
    .Range("A" & .Rows.Count).End(xlUp).Row
End With 
Run Code Online (Sandbox Code Playgroud)

要么

With Sheets("Sheet2")
    .Cells(.Rows.Count, 1).End(xlUp).Row
End With 
Run Code Online (Sandbox Code Playgroud)

  • 对于查找最后一行的两种方法都不起作用。我不断收到“运行时错误'438':对象不支持此属性或方法”。 (2认同)

小智 7

这怎么样?

dim rownum as integer
dim colnum as integer
dim lstrow as integer
dim lstcol as integer
dim r as range

'finds the last row

lastrow = ActiveSheet.UsedRange.Rows.Count

'finds the last column

lastcol = ActiveSheet.UsedRange.Columns.Count

'sets the range

set r = range(cells(rownum,colnum), cells(lstrow,lstcol))
Run Code Online (Sandbox Code Playgroud)


小智 5

如果你想指定一个特定的工作表,这个函数应该可以解决问题。我从 user6432984 那里得到了解决方案并修改了它以不抛出任何错误。我使用的是 Excel 2016,所以它可能不适用于旧版本:

Function findLastRow(ByVal inputSheet As Worksheet) As Integer
    findLastRow = inputSheet.cellS(inputSheet.Rows.Count, 1).End(xlUp).Row
End Function
Run Code Online (Sandbox Code Playgroud)

如果您已经在要查找最后一行的工作表中工作,则这是要运行的代码:

Dim lastRow as Integer
lastRow = cellS(Rows.Count, 1).End(xlUp).Row
Run Code Online (Sandbox Code Playgroud)