|
▼KOKO さん:
>A列に日付のデータが入っています。例)2011/10/31
>表は抽出するたびに総データ数が変化します。
>A列にデータがある中から、2012/3/31以降の
>データを行ごと削除したいのですが、
>どのような記述となるのでしょうか?
一行目に列見出しが書いてあるとして、
AutoFilterを使ったらどうでしょ
Sub Try1()
Dim r As Range
Dim date1 As Date
date1 = "2011/10/31"
Set r = Range("A1", Cells(Rows.Count, 1).End(xlUp))
r.Worksheet.AutoFilterMode = False 'フィルタ解除(念のため)
r.AutoFilter 1, ">=" & CLng(date1) 'A列にフィルタをかける
If r.SpecialCells(xlVisible).Count > 1 Then '1行以上該当セルがあれば
Intersect(r, r.Offset(1)).EntireRow.Delete '行削除
End If
r.AutoFilter
End Sub
> Intersect(r, r.Offset(1)).EntireRow.Delete '行削除
これは 範囲r と この範囲を1行下にシフトした範囲との共通する範囲のうちの
「可視セルだけを行削除」します。
つまり、単に
r.EntireRow.Delete '行削除
とすると、可視セルだけ行削除してくれますが、そうすると1行目の見出し行
まで削除されてしまうので、そのために一行目を除外する対策です。
|
|