ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的测验 > Excel VBA > 如何用一句VBA代码获取单元格区域中有数据的最后单元格的行号?

如何用一句VBA代码获取单元格区域中有数据的最后单元格的行号?

作者:绿色风 分类: 时间:2022-08-18 浏览:310
楼主
kevinchengcw
要求:
1. 用一句VBA代码取得工作表有数据区域的最后一行的行号。
2. 可以通过本测试所提供的附件的测试得到正确结果。
3. 用With ... End With语句不算行数,只以With语句中间的代码行数计算。

答题期限:15天(2月18日开帖)

正确答案可获5个技能分,第一个正确答案可得到额外的5个魅力值。

开帖:2011.2.20

参考答案:
  1. Sub test()  '一句代码
  2. MsgBox ActiveSheet.UsedRange.SpecialCells(2, 23).Areas(ActiveSheet.UsedRange.SpecialCells(2, 23).Areas.Count).Row + ActiveSheet.UsedRange.SpecialCells(2, 23).Areas(ActiveSheet.UsedRange.SpecialCells(2, 23).Areas.Count).Rows.Count - 1
  3. End Sub
  1. Sub test2() 'with语句写法
  2. With ActiveSheet.UsedRange.SpecialCells(2, 23)
  3.     MsgBox .Areas(.Areas.Count).Row + .Areas(.Areas.Count).Rows.Count - 1
  4. End With
  5. End Sub
实现方法:查找使用区域有数据单元格会将单元格分成若干区域,查找最后区域的起始行号加行数减1即为最后数据行号。
测试文件.rar
2楼
pzh130
MsgBox "最后一行号是:" & Cells.Find("*", _
      SearchOrder:=xlByRows, LookIn:=xlValues, _
      SearchDirection:=xlPrevious).EntireRow.Row

MsgBox Split(Intersect([A:A], Cells.SpecialCells(xlCellTypeConstants).EntireRow).EntireRow.Address, "$") _
   (UBound(Split(Intersect([A:A], Cells.SpecialCells(xlCellTypeConstants).EntireRow).EntireRow.Address, "$")))
3楼
初学者2012
学习了**

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap