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

Excel VBA如何定义排除隐藏行的Last Row以适配不同报表场景

调整LR2的计算逻辑,从已使用区域末尾向上查找第一个可见行,兼容有无隐藏行两种场景的完整代码如下:

Dim LR2 As Long
Dim i As Long
' 从已使用区域最后一行向上遍历,取第一个非隐藏行作为有效行末尾
For i = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row To 1 Step -1
    If Not Rows(i).Hidden Then
        LR2 = i
        Exit For
    End If
Next i

ActiveSheet.Range("A6:A" & LR2).Copy ActiveSheet.Range("B6:B" & LR2)
Application.CutCopyMode = False

' 移除冗余的Select操作,执行效率更高
ActiveSheet.Range("B6:B" & LR2).Replace What:="-", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2

如果你的报表有效数据默认都在A列填充,也可以用更简洁的LR2计算逻辑,直接取A列最后一个有内容的行,自动忽略下方无内容的隐藏行:

' 替换上方的循环逻辑即可,其余代码不变
LR2 = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row

内容的提问来源于stack exchange,提问作者Zain Lakdawala

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:09:04