人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ExcelのVBAについて。

With Range("B3:B" & Range("B65536").End(xlUp).Row)
.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With

B列の使用範囲で、空白セルがあったら、その行を削除するというコードです。
空白セルがある場合はうまく動くのですが、
空白セルがない場合は「該当するセルがありません」というエラーが出てしまいます。

空白セルが"あれば"動作し、"なければ"なにも起こらないというコードにするにはどうしたらよいでしょうか?

●質問者: tetlis
●カテゴリ:コンピュータ インターネット
✍キーワード:DELETE Excel VBA エラー コード
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● guja
●60ポイント ベストアンサー

SpecialCells(xlCellTypeBlanks) を実行した時点で該当するセルがなかった時点でどうしてもエラーが出てしまうので、

On Errorでエラーを無視してしまうのが一番簡単かと思います。


On Error Resume Next

.SpecialCells(xlCellTypeBlanks).EntireRow.Delete

On Error GoTo 0

◎質問者からの返答

できました!

ありがとうございました。


2 ● Mook
●10ポイント

下記のような感じでどうですか。

 Dim objRange As Range

 On Error Resume Next
 Set objRange=Range("B3:B" & Range("B65536").End(xlUp).Row).SpecialCells(xlCellTypeBlanks)
 On Error GoTo 0
 If Not objRange Is Nothing Then
 objRange.EntireRow.Delete
 End If
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ