Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何基于3列中的值删除图纸中的行_Excel_Vba - Fatal编程技术网

Excel 如何基于3列中的值删除图纸中的行

Excel 如何基于3列中的值删除图纸中的行,excel,vba,Excel,Vba,如果同一行的C列、D列和E列的列值为零,我必须删除一行。 比如说 ColumnA Column B ColumnC ColumnD ColumnE row1- abc xyz 0 abs abx row2- wqe tuy 0 0 0 row3 uhiu khj kjh khk

如果同一行的C列、D列和E列的列值为零,我必须删除一行。 比如说

      ColumnA   Column B   ColumnC   ColumnD    ColumnE
 row1-    abc        xyz         0       abs        abx
 row2-    wqe        tuy         0         0          0
 row3    uhiu        khj       kjh       khk          0
这里我必须删除第2行,因为所有列c、D、E的值都是零


请帮助

反向循环应该可以完成这项工作。请尝试以下方法:

Option Explicit

Public Sub DeleteRows()
    Dim i As Long, count As Long, lastRow As Long

    ' Replace Sheet1 with your sheetname
    With ThisWorkbook.Worksheets("Sheet2")

        ' Change C with your most consistent column letter
        ' (a column that has data always to make sure there's no possibility to miss the last row due to empty cells)
        lastRow = .Cells(.Rows.count, "C").End(xlUp).Row

        ' We do a reverse loop to not screw up the index
        For i = lastRow To 2 Step -1
            If .Range("C" & i).Value = "0" And .Range("D" & i).Value = "0" And .Range("E" & i).Value = "0" Then
                .Range("C" & i).EntireRow.Delete
                count = count + 1
            End If
        Next i
    End With

    ' Display some message
    If count > 0 Then
        MsgBox "Done!" & vbCrLf & "Deleted " & count & " row(s).", vbInformation + vbOKOnly, "Success"
    Else
        MsgBox "No matches found for deletion", vbInformation + vbOKOnly, "Success"
    End If
End Sub
试试看


试试这个代码,快速简单的代码

Sub deleterow()

Dim i As Integer

i = 2
LastR = Cells(Rows.Count, 1).End(xlUp).row

For i = LastR To 2 Step -1
If Cells(i, 3).value = "0" And Cells(i, 4).value = "0" And Cells(i, 5).value = "0" Then
Cells(i, 1).EntireRow.delete
End If
Next i
End Sub

嘿,谢谢,但是我已经实现了,但是excel中没有删除任何行
Sub deleterow()

Dim i As Integer

i = 2
LastR = Cells(Rows.Count, 1).End(xlUp).row

For i = LastR To 2 Step -1
If Cells(i, 3).value = "0" And Cells(i, 4).value = "0" And Cells(i, 5).value = "0" Then
Cells(i, 1).EntireRow.delete
End If
Next i
End Sub