VBA范围删除脚本

时间:2016-06-27 20:55:01

标签: excel excel-vba vba

我正在使用这个表,我需要编写一个识别胡萝卜这个词的脚本:并删除它上面的一行和它下面的7行,包括实际的行。

我尝试了多种方法,但由于某种原因所有这些方法都让我失望,所以我想我错过了一些小问题。

Sub delete()
startRow = 19
Set dataSheet = Sheets(1)

 endRow = dataSheet.UsedRange.Rows.Count
 Dim horse

  horse = Range(i - 1, i + 7)

For i = startRow To endRow
If (Cells(i, "A").Value) = "Entity:" Then
Cells(horse, "A").EntireRow.delete

End If
Next i

End Sub

我也试过,去细胞(i-1,A)..再加上一到七个等不行。寻找小费?

1 个答案:

答案 0 :(得分:4)

使用此:

删除行或列时,最好向后循环。

您的horse行不在循环中,因此i没有价值。

您声明并指定工作表但从不使用该变量。

同样优良的做法是声明所有变量。

Sub delete()
Dim startRow As Long, endRow As Long
Dim i as Long
startRow = 19
Set datasheet = Sheets(1)

endRow = datasheet.UsedRange.Rows.Count
With datasheet
    For i = endRow To startRow Step -1
        If .Cells(i, "A").Value = "Entity:" Then
            .Rows(i - 1 & ":" & i + 7).delete
        End If
    Next i
End With
End Sub