Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: 蝶·舞

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

[复制链接]
发表于 2013-12-30 19:31 | 显示全部楼层
没反应过来:标题就是问题哦
下面只是两种比较常见的写法


'提取A列最后非空行的行号
Sub test()

    '1)简单,好理解。但如果数据源超过65536,可能发生误判。
    MsgBox Range("a65536").End(xlUp).Row

    '2)也是好理解。不论是否超过65536,都不会误判。
    MsgBox Cells(Rows.Count, 1).End(xlUp).Row

End Sub
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

 楼主| 发表于 2013-12-30 19:34 | 显示全部楼层
爱疯 发表于 2013-12-30 19:31
没反应过来:标题就是问题哦
下面只是两种比较常见的写法

这样的话,行号会返回10,但我的要求只是在A2:A9之间的最后行号,不管A10后来的单元格是否有内容
回复

使用道具 举报

发表于 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 19:52 | 显示全部楼层
因为A10不确定是否为空,并且要判断的区域A2:A9中的端点A9也不确定是否为空,

所以改用先循环判断,再判断得到结果。

我觉得这样写,更容易理解一些吧
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-30 06:18 , Processed in 0.413471 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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