特定の列に空白のセルがある場合に行全体を検索して削除するExcel-vbaを作成しています。空白のセルが少なくとも1つある場合、マクロは正常に機能していますが、空白のセルがない場合はエラー400が表示されます。私のコードは
Sub GPF_Sign()
Dim i As Integer, n as integer
Dim LROW As Long
LROW = Sheets("GPF").Range("B200").End(xlUp).Row
n = Range("D9:D" & LROW).SpecialCells(xlCellTypeBlanks).Cells.Count
If n > 0 Then
Range("D9:D" & LROW).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End If
End Sub
「.SpecialCells(xlCellTypeBlanks)」を使用しているメソッドは、範囲を返そうとしています。空白のセルがない場合、次の部分「.cells.count」はNothingをカウントしようとしています。それがあなたにエラーを与える理由です。
すでにn> 0かどうかを確認しているので、「n =」行のすぐ上にOn Error Resume Next
を追加するだけで済みます。この後にさらにコードがある場合は、この部分の後にOn Error GoTo 0
を付けて、後のエラーを無視しないようにすることをお勧めします。