0

私はマクロとスクリプト全般に不慣れです。

列 3、4、および 5 が空の場合、行を削除したいと思います。

Sub DeleteRows()
Columns(3).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

ケースが3行目だけの場合に機能しますが、意図したとおりに機能させるためにさまざまな方法を試しました。それらはすべて何らかのエラーになります。

それで、どうすればいいですか?

4

1 に答える 1

1

これを試して:

Sub DeleteRows()
For i = 3 to 5
    Columns(i).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Next

これに関する唯一の問題は、空白のセルがない場合、エラーが返されることです。これに代わる方法は、EntireRow.Delete の前に空白のセルがあるかどうかを確認することです。

方法は次のとおりです。

Sub DeleteRows()
Dim rngBlanks as Range
Dim i as Integer
For i = 3 to 5
    On Error Resume Next
    Set rngBlanks = Columns(i).SpecialCells(xlCellTypeBlanks)
    On Error GoTo 0
    If Not rngBlanks is nothing then
        rngBlanks.EntireRow.Delete
    End if
Next

これが機能するかどうか、さらに説明が必要な場合はお知らせください。

于 2013-07-22T15:06:37.550 に答える