Excel精英培训网

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

[已解决]返回当前列最前一个有数据的单元格问题

[复制链接]
发表于 2015-9-6 09:35 | 显示全部楼层 |阅读模式
返回当前列最前一个有数据的单元格问题


Sub 返回当前列最后一个非空单元格()  ‘这个能返回当前列,最后一个有数据的单元格
    Set Rng = Cells(Rows.Count, ActiveCell.Column).End(xlUp)
    Rng.Select
End Sub
上面是返回当前列,最后一个有数据的单元格


为什么下面这个不能正确的返回。
Sub 返回当前列最前一个非空单元格()  ‘这个不能返回当前列,最前一个有数据的单元格
    Set Rng = Cells(Rows.Count, ActiveCell.Column).End(xlDown)
    Rng.Select
End Sub
请大家帮我看看,谢谢了。
附件.rar (6.34 KB, 下载次数: 13)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-9-6 09:48 | 显示全部楼层
Set Rng = Cells(Rows.Count, ActiveCell.Column).End(xlDown)

这是工作表最后一行了,肯定不能再往下了

是不是这个意思?
Set Rng = ActiveCell.End(xlDown)
Rng.Select
回复

使用道具 举报

发表于 2015-9-6 09:51 | 显示全部楼层
比如是2010版,这个已经是1048576行,怎么往下查找啊,应该从最上面的那个单元格开始往下
回复

使用道具 举报

 楼主| 发表于 2015-9-6 09:58 | 显示全部楼层
Hsiao 发表于 2015-9-6 09:48
Set Rng = Cells(Rows.Count, ActiveCell.Column).End(xlDown)

这是工作表最后一行了,肯定不能再往下了
...

我测试了下,是返回了当前列,最后一个有数据的单元格呀。


我想实现的是,返回当前列,第一个有数据的单元格。
回复

使用道具 举报

发表于 2015-9-6 10:10 | 显示全部楼层    本楼为最佳答案   
yjwdjfqb 发表于 2015-9-6 09:58
我测试了下,是返回了当前列,最后一个有数据的单元格呀。
  1. Sub demo()
  2.     Range(Cells(1, ActiveCell.Column), Cells(Rows.Count, ActiveCell.Column)).Find("*").Select
  3. End Sub
复制代码
这样

评分

参与人数 1 +9 收起 理由
yjwdjfqb + 9 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2015-9-6 10:28 | 显示全部楼层
yjwdjfqb 发表于 2015-9-6 09:58
我测试了下,是返回了当前列,最后一个有数据的单元格呀。

Set Rng = Cells(1, ActiveCell.Column).End(xlDown)
Rng.Select

评分

参与人数 1 +12 收起 理由
yjwdjfqb + 12 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2015-9-6 10:30 | 显示全部楼层
qh8600 发表于 2015-9-6 10:10
这样

这个可以,如果当前列,没有数据时,会报错!
回复

使用道具 举报

 楼主| 发表于 2015-9-6 10:32 | 显示全部楼层
Hsiao 发表于 2015-9-6 10:28
Set Rng = Cells(1, ActiveCell.Column).End(xlDown)
Rng.Select

谢谢老师,这个好用点,能否加一个判断上呀老师

如果当前列,没有数据的话,就弹出提示,当前列无数据,确定退出。

回复

使用道具 举报

发表于 2015-9-6 10:39 | 显示全部楼层
Set Rng = Cells(1, ActiveCell.Column).End(xlDown)
if rng.row=rows.count then
     msgbox "当前列无数据"
else
Rng.Select
end if

评分

参与人数 1 +6 收起 理由
yjwdjfqb + 6 赞一个!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2015-9-6 11:26 | 显示全部楼层
Hsiao 发表于 2015-9-6 10:39
Set Rng = Cells(1, ActiveCell.Column).End(xlDown)
if rng.row=rows.count then
     msgbox "当前列无 ...

谢谢老师了,这个好用,就用这个啦 !
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 07:19 , Processed in 0.322577 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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