Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2786|回复: 10

[已解决]关于vba问题

[复制链接]
发表于 2013-3-3 17:14 | 显示全部楼层 |阅读模式
例如单元格 a列,如何编程可以看到a列最后一个有内容的单元格?
不用if语句。不知道specialcell,和end语句可否实现?
最佳答案
2013-3-3 18:28
  1. Sub test()
  2.     Dim iRow As Long
  3.     For iRow = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
  4.         If Len(Cells(iRow, 1)) > 0 Then
  5.             Exit For
  6.         End If
  7.     Next
  8.     MsgBox iRow
  9. End Sub
复制代码
发表于 2013-3-3 17:15 | 显示全部楼层
  1. msgbox range(rows.count,1).end(xlup)
复制代码
回复

使用道具 举报

发表于 2013-3-3 17:17 | 显示全部楼层
  1.     MsgBox Range("A:a").Find(what:="*", searchdirection:=xlPrevious)
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-3-3 18:14 | 显示全部楼层
hwc2ycy 发表于 2013-3-3 17:17

如果我想反回最后有数据的 row数,应该如何编写?
回复

使用道具 举报

发表于 2013-3-3 18:25 | 显示全部楼层
那就循环吧。
回复

使用道具 举报

发表于 2013-3-3 18:28 | 显示全部楼层    本楼为最佳答案   
  1. Sub test()
  2.     Dim iRow As Long
  3.     For iRow = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
  4.         If Len(Cells(iRow, 1)) > 0 Then
  5.             Exit For
  6.         End If
  7.     Next
  8.     MsgBox iRow
  9. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-3-3 18:33 | 显示全部楼层
hwc2ycy 发表于 2013-3-3 18:28

不想用循环语句,不知道可不可以用specialcells和end语句配合使用?
回复

使用道具 举报

 楼主| 发表于 2013-3-3 18:34 | 显示全部楼层
hwc2ycy 发表于 2013-3-3 18:28

感觉用循环语句似乎很浪费时间
回复

使用道具 举报

发表于 2013-3-3 18:35 | 显示全部楼层
你用END(XLDOWN)吧。
回复

使用道具 举报

发表于 2013-3-3 18:36 | 显示全部楼层
用循环是为了避免假空单元格。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-26 04:25 , Processed in 0.337143 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表