1

列 P に「1」または「0」があり、列 L に「False」が含まれている場合に、すべての行を削除するこの非常に単純なマクロを作成しました。なんらかの理由で、継続的に実行されていないようです。すべてを削除するには、マクロを何度も実行する必要があります。

    Sub Delete_rows()

    Dim Pcell As Range
    Dim LastPCell As Long
    Range("P2", Range("P65000").End(xlUp)).Name = "LastPCell"

    For Each Pcell In Range("LastPCell")
    If Pcell <= 1 And Pcell.Offset(0, -4) = "False" Then Pcell.Offset(0, 4).EntireRow.Delete
    Next Pcell

    End Sub

約 10,000 行しかないので、範囲サイズは問題ないはずです。

この時点でちょっと唖然としています。トラブルシューティングを行うことができませんでした。何か案は?

ありがとう。

4

1 に答える 1

3

@bernieの答えを拡張するには

Sub Delete_rows()
Dim lastCell As Long, i As Integer, Pcell As Range
lastCell = ActiveSheet.Range("P65000").End(xlUp).Row

For i = lastCell To 2 Step -1
Set Pcell = ActiveSheet.Cells(i, 16)
    If Pcell <= 1 And Pcell.Offset(0, -4) = "False" Then
        Pcell.Offset(0, 4).EntireRow.Delete
    End If
Next i

End Sub
于 2012-06-22T23:43:38.073 に答える