Vba 基于单元格值删除整行

Vba 基于单元格值删除整行,vba,excel,Vba,Excel,如果整行中的一个单元格等于,我很难确定如何删除整行 这就是我写的,关于如何让它工作有什么想法吗 Dim rng As Range, rrng As Range Set rng = Range("A1:E1") Set rng = Range(rng, rng.End(xlDown)) For Each rrng In rng If rrng.Value = 0 Then .EntireRow.Delete Next rrng 要删除空行,请使用反向循环 范例 O

如果整行中的一个单元格等于,我很难确定如何删除整行

这就是我写的,关于如何让它工作有什么想法吗

Dim rng As Range, rrng As Range
    Set rng = Range("A1:E1")
    Set rng = Range(rng, rng.End(xlDown))
    For Each rrng In rng
    If rrng.Value = 0 Then .EntireRow.Delete
Next rrng

要删除空行,请使用反向循环

范例

Option Explicit
Public Sub Example()
    Dim Row&, i&

    i = Cells.SpecialCells(xlCellTypeLastCell).Row

    For Row = i To 1 Step -1
        Debug.Print Row ' Immediate Window
        If Application.CountA(Rows(Row)) = 0 Then
            i = i - 1

            If IsEmpty(Cells(Row, 1)) Then
                Rows(Row).Delete
            End If
        End If
    Next
End Sub

这是我的解决方案。它对行中的所有值求和,并在和为0时将其删除

Sub deleting_empty_rows()

Dim rng, rrng, rcell As Range
Dim i, j As Long

Set rng = Range("A1:E1")
Set rng = Range(rng, rng.End(xlDown))

For j = rng.Rows.Count To 1 Step -1

    Set rrng = rng.Rows(j)

    i = 0

    For Each rcell In rrng.Cells
        i = i + rcell.Value
    Next rcell

    If i = 0 Then rrng.EntireRow.Delete

Next j

End Sub

我对你的代码做了一些小的修改,我想它现在做了你希望它做的事情

Dim rng As Range, rrng As Range
Set rng = Sheet1.Range("A1:E1")
Set rng = Range(rng, rng.End(xlDown))
For Each rrng In rng
If rrng.Value = 0 Then Sheet1.Rows(rrng.Row).Delete
Next rrng

这是你上一个问题的后续问题吗?你把所有的空白都变成了零?