首页 > 解决方案 > 根据该行中的公式结果删除行

问题描述

我想根据该行中单元格的内容删除整行。

该单元格有一个公式,它解析为 1 或零。如果为 1,则应删除行。

下面的代码删除每一行,不管 AB 中有什么。

Sub Delete()

Dim FoundCell As  AB
Set FoundCell = Worksheets("PM2CORRELATED").Range("AB4:AB1500").Find(what:=1)
Do Until FoundCell Is Nothing
    FoundCell.EntireRow.Delete
    Set FoundCell = Worksheets("PM2CORRELATED").Range("AB4:AB1500").FindNext
Loop

End Sub

标签: excelvba

解决方案


您可以过滤它们并删除结果,而不是一一删除行

Public Sub DeleteRows()
    
    ' Set target sheet
    Dim targetSheet As Worksheet
    Set targetSheet = ThisWorkbook.Worksheets("PM2CORRELATED")
    
    ' Set target range
    Dim targetRange As Range
    Set targetRange = targetSheet.Range("AA4:AA1500")
    
    ' Filter cells
    targetRange.AutoFilter Field:=1, Criteria1:=1
    
    ' Delete the filtered rows
    targetRange.Offset(1, 0).Resize(targetRange.Rows.Count - 1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
    
    ' Turn off autofilter
    targetSheet.AutoFilterMode = False
    If targetSheet.FilterMode = True Then
        targetSheet.ShowAllData
    End If
    
End Sub

推荐阅读