web-dev-qa-db-ja.com

Excel-vbaでエラー400を解決する方法

特定の列に空白のセルがある場合に行全体を検索して削除する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
4
Abhinn Wasav

「.SpecialCells(xlCellTypeBlanks)」を使用しているメソッドは、範囲を返そうとしています。空白のセルがない場合、次の部分「.cells.count」はNothingをカウントしようとしています。それがあなたにエラーを与える理由です。

すでにn> 0かどうかを確認しているので、「n =」行のすぐ上にOn Error Resume Nextを追加するだけで済みます。この後にさらにコードがある場合は、この部分の後にOn Error GoTo 0を付けて、後のエラーを無視しないようにすることをお勧めします。

1
Plaidpenguinhat