Excel求最后一行的代码和公式

 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 mN, mfn As String
Application.ScreenUpdating = False

mfn = InputBox("
请输入文件名:")
If Not theFileIsOpen(mfn) Then
      
       Workbooks.Open Filename:="D:/
报表/" & mfn, UpdateLinks:=0
Else
       Workbooks(mfn).Activate
End If
End Sub
Function theFileIsOpen(myFileName As String)
Dim myWindow As Window
For Each myWindow In Application.Windows
       If myWindow.Caption = myFileName Then
         theFileIsOpen = True
       End If
Next
End Function

'取得所有列中最后一行的行标,无论中间有无空行,但包括已删除的信息记录,若要获得实际有数据的最后一行则必须保存。
   '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

你可能感兴趣的:(c,function,String,Excel,Integer,报表)