- ベストアンサー
EXCEL VBAで教えてください。
EXCELで、4列(A~D)仕立ての表があります。D列に入力されている日付が現在より過去の場合、その行を削除するように作成したいのですが、教えていただけますでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
数字を消さないで、過去の日付けを<<表示>>しているセルの行だけを削除する のであれば、このような感じで如何でしょうか。 Sub Test() Dim Rw As Long For Rw = Range("D65536").End(xlUp).Row To 1 Step -1 If IsDate(Range("D" & Rw).Text) And _ Range("D" & Rw).Value < Date Then Range("D" & Rw).EntireRow.Delete End If Next End Sub
その他の回答 (2)
- shishishishi
- ベストアンサー率39% (362/921)
回答No.2
No1です。 先ほどのでやると、日付が入っていない場合も削除されてしまいますね。 Sub testtest() For i = 40 To 1 Step -1 If Cells(i, "D") <> "" And Cells(i, "D") < Date Then Rows(i).Delete End If Next End Sub としてください。
質問者
お礼
ありがとうございます。さっぱりしていてわかりやすいので試してみます。
- shishishishi
- ベストアンサー率39% (362/921)
回答No.1
仮に、データが1行目から40行目まであるとします。 Sub testtest() For i = 40 To 1 Step -1 If Cells(i, "D") < Date Then Rows(i).Delete End If Next End Sub
お礼
ありがとうございます。助かります!