我用一些标准填充了一个数字数组,然后我想要删除该区域中的所有行。
基本上我遍历一列,如果在该特定行中,该列中的单元格匹配一个标准,我将该行号添加到一个数组中。完成所有行后,我想删除所有行号。
我在弄清楚如何一次删除所有行时遇到了麻烦,因为很明显,如果我一次执行一个,行号会随着前面或下面的行被删除而改变。因此,我想一起选择所有行,然后一次对所有行调用 Delete 命令。有任何想法吗?
Sub Tester()
Dim arr
arr = Array(3, 5, 7, 9)
ActiveSheet.Range("A" & Join(arr, ",A")).EntireRow.Delete
End Sub
向后迭代你的行。
就像是:
Sub tester()
'setting ScreenUpdating false makes this go faster...
Application.ScreenUpdating = False
Dim i As Integer
'go through all rows starting at last row
For i = Range("A1:E5").Rows.Count To 1 Step -1
'check if you need to delete them (you will want to update this)
If Cells(i, 1).Value = "Delete this row!" Then
Rows(i).Delete
End If
Next i
Application.ScreenUpdating = True
End Sub
这是一个简单的:
If Range("B1") <> "" Then ' Range that bears the array of cell.addresses....
ar = Array(Range(Range("B1").Cells))
For Each a In ar
a.EntireRow.ClearContents
Next
Range("B1").ClearContents
End If