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

VBAについて質問です。

VBAで条件付きのデータの削除をする型をVBAに詳しい方おりましたら、作成いただけないでしょうか。

削除の条件ですが、
列Fに文字が入っているが、列Gに文字が入っていない行データをすべて削除する。というものです。
上記条件のデータを削除するやり方の型を作れるかたおりましたらご回答いただけないでしょうか?

お手数をおかけしますがご回答お待ちしております。

●質問者: aiomock
●カテゴリ:コンピュータ インターネット
✍キーワード:VBA データ 作成
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Mook
●100ポイント ベストアンサー

セルが空であるかどうかを判定するのであれば、"" と比較をすればよいでしょう。

空のように見えてもスペースがある場合、文字があるのと同じ動作をしますが、

それがいやな場合、先の質問のようにセルに Trim 関数を使用してから比較すれば、

スペースも無視するようになります。

Sub DeleteF()
 Dim lastRow As Long
 lastRow = Range("F" & Rows.Count).End(xlUp).Row
 For r = lastRow To 1 Step -1
 If Cells(r, "F").Value <> "" And Cells(r, "G").Value = "" Then
 Rows(r).Delete
 End If
 Next
End Sub

スペースも無視する場合

Sub DeleteF()
 Dim lastRow As Long
 lastRow = Range("F" & Rows.Count).End(xlUp).Row
 For r = lastRow To 1 Step -1
 If Trim( Cells(r, "F").Value ) <> "" And Trim( Cells(r, "G").Value ) = "" Then
 Rows(r).Delete
 End If
 Next
End Sub

また行を削除する場合は、今回の例示のように最終行から処理をした方が紛れがありません。

◎質問者からの返答

ご回答ありがとうございます。綺麗に実行されました。

関連質問


●質問をもっと探す●



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