VBA代码,但需要保持没有数据的行

时间:2016-09-28 20:56:06

标签: excel vba excel-vba

我正在使用VBA删除不符合特定条件的行。代码正在运行,但是,我无法弄清楚如何保持空白行分隔数据。以下是我正在使用的代码。它适用于删除我想要的内容,但是,它也删除了它们之间的空白行。

Sub DeleteRows()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Dim i As Long
For i = Range("E" & Rows.Count).End(xlUp).Row To 1 Step -1
    If (Range("E" & i).Value > -5 And Range("E" & i).Value < 5) Then
         Range("E" & i).EntireRow.Delete
    Else
    If (Range("D" & i).Value > -500 And Range("D" & i).Value < 500) Then
    Range("D" & i).EntireRow.Delete
    End If
    End If
    Next i
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

谢谢!

2 个答案:

答案 0 :(得分:2)

我认为检查空格应该足够了,如果单元格为空,则不要删除该行。喜欢这个

Sub DeleteRows()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Dim i As Long
For i = Range("E" & Rows.Count).End(xlUp).Row To 1 Step -1
    If (Range("E" & i).Value > -5 And Range("E" & i).Value < 5 and Range("E" & i) <> "") Then
         Range("E" & i).EntireRow.Delete
    Else
        If (Range("D" & i).Value > -500 And Range("D" & i).Value < 500 and Range("D" & i) <> "") Then
            Range("D" & i).EntireRow.Delete
        End If
    End If
Next i
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

答案 1 :(得分:0)

添加另一个And语句应该可以解决这个问题,例如你可以使用&lt;&gt;说不等于。

If (Range("E" & i).Value > -5 And Range("E" & i).Value < 5) And Range("E" & i).Value <> "" Then