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

VBA需求:删除含"USD Receipts:"单元格所在行及下方至空行的区域

解决VBA删除指定行至下方空行的问题

你的原代码问题在于使用Range("A" & Rows.Count).End(xlUp).Row获取了A列最后一个非空行的行号,导致删除范围直接延伸到表格末尾,而非你需要的空行位置。

以下是修正后的代码,会精准删除目标行及其下方直至空行的区域:

Sub NONHM()
    Dim Found As Range
    Dim endRow As Long
    
    ' 查找包含"USD RECEIPTS:"的单元格(xlPart匹配包含文本,忽略大小写)
    Set Found = Columns("A").Find(what:="USD RECEIPTS:", LookIn:=xlValues, lookat:=xlPart, MatchCase:=False)
    
    If Not Found Is Nothing Then
        ' 从目标行的下一行开始,定位第一个空行
        endRow = Found.Row + 1
        Do While Cells(endRow, "A").Value <> ""
            endRow = endRow + 1
        Loop
        
        ' 删除目标行到空行的所有行(若不想删除空行本身,将endRow改为endRow - 1)
        Rows(Found.Row & ":" & endRow).Delete
    End If
End Sub

代码说明:

  • 替换了原代码中获取最后一行的逻辑,改为循环查找A列第一个空行的行号,确保删除范围仅到空行为止。
  • 将lookat:=xlWhole改为xlPart,匹配包含目标文本的单元格(符合你"包含文本"的需求),同时添加MatchCase:=False忽略大小写,增强兼容性。
  • 若你不需要删除空行本身,只需把Rows(Found.Row & ":" & endRow).Delete中的endRow改为endRow - 1即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 13:41:11