java excel 最后一行数据_如何在Excel中找到包含实际数据的最后一行?

你可以使用它,但它很慢:

Sub LastRowWithNonNullData()

Dim LastRow As Variant, i As Long

For i = Rows.Count To 1 Step -1

If Cells(i, "A").Value <> "" Then

MsgBox i

Exit Sub

End If

Next i

End Sub

这不是很慢:

Sub IsThisAnyBetter()

MsgBox Evaluate("IF(COUNTA(A:A)=0,"""",MAX((A:A<>"""")*(ROW(A:A))))")

End Sub

两者都会忽略 A 列底部的Null . 如果直接在工作表单元格中使用Evaluate()参数,则必须输入数组 .

EDIT#1:

这两个子工作在 A 列上 . 假设我们要修改第二个子中的公式以处理 77 列(即列 BY ) . 这是一种方法:

Sub AnyColumn()

Dim s1 As String, s2 As String, iCol As Long, iColAlpha As String

Dim s3 As String, s4 As String, s5 As String

iCol = 77

s1 = "IF(COUNTA(A:A)=0,"""",MAX((A:A<>"""")*(ROW(A:A))))"

s2 = Cells(1, iCol).Address(0, 0)

s3 = Left(s2, Len(s2) - 1)

s4 = s3 & ":" & s3

s5 = Replace(s1, "A:A", s4)

MsgBox s5

End Sub

EDIT#2:

我在Evaluate()中使用的公式改编自Chip Perason

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值