我正在使用这个表,我需要编写一个识别胡萝卜这个词的脚本:并删除它上面的一行和它下面的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)..再加上一到七个等不行。寻找小费?
答案 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