VBAについて質問です。


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

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

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

回答の条件
  • 1人2回まで
  • 登録:2009/12/17 20:59:56
  • 終了:2009/12/17 21:14:07

ベストアンサー

id:Mook No.1

Mook回答回数1312ベストアンサー獲得回数3912009/12/17 21:06:30

ポイント100pt

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

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

それがいやな場合、先の質問のようにセルに 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

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

id:aiomock

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

2009/12/17 21:13:58

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません