Excel精英培训网

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

[已解决]用VBA提取最后非空行的疑惑

[复制链接]
发表于 2013-12-30 18:13 | 显示全部楼层 |阅读模式
快照1.jpg 快照2.jpg
我用的VBA代码是
  1. MsgBox [a10].End(xlUp).Row
复制代码
为什么会这两种不同的结果?

最佳答案
2013-12-30 19:47
Sub test2()
    Dim i
    For i = 9 To 2 Step -1
        If Cells(i, 1) <> "" Then Exit For
    Next
   
    If i = 1 Then
        MsgBox "A2:A9中,全部为空单元格"
    Else
        MsgBox "A2:A9中,第1个非空单元格时在A" & i
    End If
End Sub
发表于 2013-12-30 18:25 | 显示全部楼层
本帖最后由 冥王 于 2013-12-30 18:29 编辑

[a10].End(xlUp).Row是包含单元格A10的区域中A列顶端单元格的行号,就是包含A10的一个连续区域最上面的一个非空单元格,遇到空单元格就被隔断了,貌似有些晕
回复

使用道具 举报

 楼主| 发表于 2013-12-30 18:45 | 显示全部楼层
冥王 发表于 2013-12-30 18:25
[a10].End(xlUp).Row是包含单元格A10的区域中A列顶端单元格的行号,就是包含A10的一个连续区域最上面的一个 ...

但我只要把A9中的内容删除掉,上面再怎么变化都是正常结果,反正只是A9有内容,就时不时出现问题,当A1:A9全有内容时,直接返回1
快照1.jpg 快照2.jpg
回复

使用道具 举报

发表于 2013-12-30 19:12 | 显示全部楼层
你测试下msgbox Range("a1").CurrentRegion.address
回复

使用道具 举报

发表于 2013-12-30 19:14 | 显示全部楼层
假如说,
连续非空单元格区域,算是一个数据区。
连续空白单元格区域,算是一个空区域。
那么
[a10].End(xlUp)的作用是:以A10为起点,往上,跳到最近的(包含或不包含起点的)数据区端点。
其实等同于,选择A10,然后 ctrl+方向上。




再加.row,
[a10].End(xlUp).row是跳转到的单元格的行号
回复

使用道具 举报

发表于 2013-12-30 19:19 | 显示全部楼层
这句代码的意思是从A10单元格开始往上算,找到最后一个非空单元格的行数。

第一个图,A10往上最后一个非空单元格是A8,第8行,再往上,A7,第7行就是空单元格了,所以返回8
第二个图,A10往上最后一个非空单元格是A9,第9行,再往上,A8,第8行就是空单元格了,所以返回9
回复

使用道具 举报

发表于 2013-12-30 19:20 | 显示全部楼层


还是再补充1个特殊情况,
当起点就是A1,往上,再也“跳不了”了,那么跳转单元格也是A1。
其实,也是等同于ctrl+上的效果
回复

使用道具 举报

 楼主| 发表于 2013-12-30 19:21 | 显示全部楼层
爱疯 发表于 2013-12-30 19:20
还是再补充1个特殊情况,
当起点就是A1,往上,再也“跳不了”了,那么跳转单元格也是A1。
其实,也是 ...

那该如何解决?

回复

使用道具 举报

发表于 2013-12-30 19:23 | 显示全部楼层
我们只是用自己的方式解释了,为什么会这两种不同的结果?

至于如何解决,我不知道你希望实现什么目的?
回复

使用道具 举报

 楼主| 发表于 2013-12-30 19:25 | 显示全部楼层
爱疯 发表于 2013-12-30 19:23
我们只是用自己的方式解释了,为什么会这两种不同的结果?

至于如何解决,我不知道你希望实现什么目的? ...

我就是想求A10单元格(不含A10)往上推,第一个非空的行号


回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-16 23:51 , Processed in 0.173535 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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