0

数値の配列にいくつかの基準を入力すると、取得しようとしているのは、この領域にあるすべての行が削除されることです。

基本的に、列を調べて、その特定の行で、この列のセルが条件に一致する場合、その行番号を配列に追加します。すべての行を通過した後、すべての行番号を削除したいと思います。

すべての行を一度に削除する方法を理解するのに苦労しています。明らかに、一度に1行ずつ削除すると、前または下の行が削除されると行番号が変化するためです。このため、すべての行を一緒に選択してから、一度にすべての行に対して Delete コマンドを呼び出します。何か案は?

4

3 に答える 3

8
Sub Tester()
Dim arr
    arr = Array(3, 5, 7, 9)
    ActiveSheet.Range("A" & Join(arr, ",A")).EntireRow.Delete
End Sub
于 2012-10-03T20:45:13.387 に答える
2

行を逆方向に繰り返します。

何かのようなもの:

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
于 2012-10-03T20:45:56.717 に答える
1

ここに簡単なものがあります:

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
于 2014-03-05T13:52:52.667 に答える