dポイントプレゼントキャンペーン実施中!

はじめまして。
当日の日付の入った行を自動で削除したいのですが、
どなたかVBAで教えていただけますでしょうか。

ID 日付
23 2011/2/18→この行を削除
24 2011/2/18→この行を削除
26 2011/2/17
26 2011/2/18→この行を削除
25 2011/2/17
26 2011/2/16
25 2011/2/16
25 2011/2/18→この行を削除



宜しくお願い致します。

A 回答 (3件)

既に出ているが


《第1)
(1)ForNextで業ごとに繰り返す
(2)その際上の業からやると削除行が業のとらえ方(ポインタ)に影響するので、下の方の行から削除すると
崩れ無くてよい。
ーー
(第2)
そのほかに、こんなとこに質問するまでも無く
操作をしてマクロの記録を採れば、コードはできるのではないですか。
操作は
範囲指定
データーフィルタ
▼をクリック
今日の日付を選ぶ
編集
行の削除
ーー
Sub Macro3()
Range("A2:C16").Select
Selection.AutoFilter
Selection.AutoFilter Field:=2, Criteria1:=DateValue("2011/2/15")
Selection.EntireRow.Delete
Range("C12").Select
End Sub
ーー
A1:C16の例 D16の16の最終行の察知はRange("65536").End(xlUp).Rowなどを使えば相対化できる。
B列は日付(日付シリアル値で入っていること)
Criteria1:=DateValue("2011/2/15")はDateとか上記のような指定になる。
(第3)
Findなどで該当行を見つけて行Deleteなども出来る
    • good
    • 1
この回答へのお礼

詳細に回答いただき、ありがとうございます。
最終行の察知勉強になりました。

お礼日時:2011/02/21 10:49

こんばんは!


すでに回答は出ていますので、参考程度で・・・
B列に日付データが入っているとします。

Sub test()
Dim i As Long
For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
If Cells(i, 2) = DateValue(Now()) Then
Rows(i).Delete (xlUp)
End If
Next i
End Sub

こんな感じではどうでしょうか?m(__)m
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
非常にシンプルで分かりやすかったです。

お礼日時:2011/02/21 10:43

For Each c In Selection



If c.Value = 比較したいデータ Then
Rows(c.Row).Delete

End If

Next


こんな感じになります


日付を扱う場合は 値、型 に注意です

任意のセルを指定し 単純にそこと比較するようにすれば一番簡単です
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
比較データでは思いつきませんでした!
ありがとうございます。m(__)m

お礼日時:2011/02/21 10:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A