You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用VBA查找Excel含公式列中最后一个有实际值的行

表格示例

问题说明

B列从第2行到第25行全部填充了关联E列的公式,公式逻辑为E列空时返回空文本,你之前使用的End(xlUp)方法仅能判断单元格是否为物理空,只要单元格内存在公式,哪怕返回值是空文本也会被判定为非空,因此会定位到填充了公式的第25行,无法得到正确结果。

解决方案

方法1:逆向遍历查找(适合数据量较小的场景,逻辑简单易调试)

Dim LR As Long, i As Long
' 先获取B列最后一个存在内容(含公式)的行
LR = Cells(Rows.Count, "B").End(xlUp).Row
' 从最后一行往上遍历,找到第一个返回值非空的行
For i = LR To 1 Step -1
    If Cells(i, "B").Value <> "" Then
        LR = i
        Exit For
    End If
Next i
' 执行完成后LR变量即为目标行号,本示例中返回5

方法2:Find方法查找(适合数据量较大的场景,执行效率更高)

核心是指定LookIn:=xlValues参数,仅按单元格实际显示值查找,自动跳过公式返回的空文本:

Dim LR As Long, findRng As Range
With Columns("B")
    Set findRng = .Find(What:="*", _
                        LookIn:=xlValues, _
                        SearchOrder:=xlByRows, _
                        SearchDirection:=xlPrevious)
    If Not findRng Is Nothing Then
        LR = findRng.Row
    Else
        ' 可自定义B列无有效值时的返回值
        LR = 0
    End If
End With

内容的提问来源于stack exchange,提问作者Luís Melo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 22:15:00