Excel求最后一行的代码和公式
×××××××××××××××××××××××××××××××××××××××
求最后一行的代码:
Sub ls()
a = [b65536].End(xlUp).Row
‘application.ExecuteExcel4Macro("get.document(10)")
End Sub
‘i = Sheet2.[a1].CurrentRegion.Rows.Count + 1 这句代码有用
=LOOKUP(2,1/(A1:A65535<>""),A1:A65535) ‘找任何列的列的最后一行
=MATCH(9E+307,B:B) ‘找数字列的最后一行
=INDEX(B:B,MATCH("*",B:B,-1))
公式能够支持整列非连续单元格, 可以容忍中间空白,只对文字有效
=OFFSET(B1,COUNTA(B:B)-1,)
公式使用在连续的数据, 不能容忍中间空白。
=index(a:a,counta(a:a)) (A列中间不能有空格)
如果有空格用数组公式:=index(a:a,max((a1:a1000<>"")*row(a1:a1000)))
×××××××××××××××××××××××××××××××××××××××××××××
快速定位到有数据的最后一行:Ctrl+end
快速定位到最后一行:ctrl + ↓
双击工作表下框线,快速移动到该列最后一行无数据的地方单元格
=MAX(NOT(ISBLANK(A1:A65535))*ROW(A1:A65535)) ‘用数组的方法
×××××××××××××××××××××××××××××××××××××××××××××
Sub 测文件开启() |
'取得所有列中最后一行的行标,无论中间有无空行,但包括已删除的信息记录,若要获得实际有数据的最后一行则必须保存。
'Dim Mylast As Integer
'Mylast = ActiveCell.SpecialCells(xlLastCell).Row
'MsgBox Mylast
'取得到最后一行的行标,包括已删除的信息记录,但若把已删除的行删除的话,即可获得实际有数据的最后一行(不用保存)。
'LastRow = ActiveSheet.UsedRange.Rows.Count
'MsgBox LastRow
'取得所有列中最后一行的行标,无论中间有无空行,不包括已删除的信息记录。
'LastRow = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
'MsgBox LastRow
'该句同上一句相同
'LastRow = Cells.Find(What:="*", After:=[a1], Searchdirection:=xlPrevious).Row
'定位到A列中最后一行,无论中间有无空行。(注意代码中的A63356是指A列)不包括已删除的信息记录。
'Range("A63356").End(xlUp).EntireRow.Select
'同上
'Range("a65536").End(xlUp).Offset(0).Select
'取得所有列中最后一行的上一行的行标,无论中间有无空行,但包括已删除的信息记录。
't = ActiveSheet.UsedRange.Rows.Count
'MsgBox t
'xlDown
'xlToRight
'xlToLeft
'xlUp
'取得A列最上一行的行标,无论中间有无空行。
'MsgBox [a1].End(xlDown).Row
'取得A列最上一行的行标,无论中间有无空行。
'Range("a1").Select
'ActiveCell.End(xlDown).Activate
'MsgBox ActiveCell.Row
'定位到最后一行及最后一列交叉的单元格,但包括已删除的信息记录。
'Range("A1").Select
'ActiveCell.SpecialCells(xlLastCell).Select
'r = ActiveCell.Row
'MsgBox r
'同上
'MsgBox ActiveCell.SpecialCells(xlLastCell).Address
'定位到最后一行及最后一列交叉的单元格,但包括已删除的信息记录。
'Dim a, b
'Selection.SpecialCells(xlCellTypeLastCell).Select
'a = ActiveCell.Row '获得行号
'b = ActiveCell.Column '获得列号
'MsgBox a & b
'定位到最后一行的最后一列单元格,不包括已删除的信息记录。
'Dim Rng As Range
'Set Rng = ActiveSheet.Cells.SpecialCells(xlCellTypeConstants)
'Rng.Areas(Rng.Areas.Count).Cells(Rng.Areas(Rng.Areas.Count).Cells.Count).Select
'选择B2单元格至最后一行及数据最多一列交叉的单元格区域,不包括已删除的信息记录。
'Dim Rng As Range, c As Integer, r As Integer
'c = Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
'r = Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
'Set Rng = ActiveSheet.Cells.SpecialCells(xlCellTypeConstants)
'Range(Rng.Cells(1, 1), Cells(r, c)).Select
'定位到当前单元格所在列连续数据的最后一行数据下的空格行。
'Do While Selection <> ""
'ActiveCell.Offset(1, 0).Range("a1").Select
'Loop
'Rows(ActiveCell.Row).Select
'========================================================================
'列
'ActiveCell.SpecialCells(xlLastCell).Column
'行
'ActiveCell.SpecialCells(xlLastCell).Row
'Rows(ActiveCell.Row).Select
'Worksheets("Sheet1").Activate
'ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Activate
'Cells(65536, 1).End(xlUp).Row
'ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
'========================================================================
'补充及复制上一行。
'Range("A2").End(xlDown).EntireRow.Copy Range("A2").End(xlDown).Offset(1, 0)
'补充及复制上一行。
' Application.ScreenUpdating = False
' With Range("A2").End(xlDown)
' .Resize(1, 8).Copy .Offset(1, 0)
' End With
' Application.ScreenUpdating = True
'========================================================================
'数据区域的最大的列号与最大的行号,不包括删除信息。
c = ActiveSheet.UsedRange.Columns.Count
r = ActiveSheet.UsedRange.Rows.Count
Cells(r, c).Select
MsgBox c & " , " &
来致:http://hi.baidu.com/liuhoubin168/blog/item/e18c6864aa5401f5f73654e6.html