当前位置:  开发笔记 > 编程语言 > 正文

如何使用宏找到包含Excel工作表中数据的最后一行?

如何解决《如何使用宏找到包含Excel工作表中数据的最后一行?》经验,为你挑选了4个好方法。

如何查找包含特定列和特定工作表中数据的最后一行?



1> Fionnuala..:

怎么样:

Function GetLastRow(strSheet, strColumn) As Long
    Dim MyRange As Range

    Set MyRange = Worksheets(strSheet).Range(strColumn & "1")
    GetLastRow = Cells(Rows.Count, MyRange.Column).End(xlUp).Row
End Function

评论

这个

Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

即使最后一行中只有一个单元格有数据,也会返回最后一个单元格的行号.


在以下情况下,此函数将返回错误的结果: - strColumn是一个数字 - 行65536中有一些数据 - 您使用的Excel 2007超过65536行

2> Jon Fournier..:

你应该使用.End(xlup)但不是使用65536你可能想要使用:

sheetvar.Rows.Count

这样它适用于Excel 2007,我相信它有超过65536行



3> GSerg..:
function LastRowIndex(byval w as worksheet, byval col as variant) as long
  dim r as range

  set r = application.intersect(w.usedrange, w.columns(col))
  if not r is nothing then
    set r = r.cells(r.cells.count)

    if isempty(r.value) then
      LastRowIndex = r.end(xlup).row
    else
      LastRowIndex = r.row
    end if
  end if
end function

用法:

? LastRowIndex(ActiveSheet, 5)
? LastRowIndex(ActiveSheet, "AI")



4> 小智..:

简单快捷:

Dim lastRow as long
Range("A1").select
lastRow = Cells.Find("*",SearchOrder:=xlByRows,SearchDirection:=xlPrevious).Row

使用示例:

cells(lastRow,1)="Ultima Linha, Last Row. Youpi!!!!"

'or 

Range("A" & lastRow).Value = "FIM, THE END"

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有