2

日付が今日より 1 週間以上遅れている場合、データの行全体を削除しようとしていますが、ヘッダーを削除したくありません。今日の日付は、A2 に表示される変数です。

編集: 列 A には、dd/mm/yyyy の形式の日付があります。

このコードは私が現時点で持っているものですが、機能せず、ヘッダーを消去します:

Sub deletedates()

Dim firstDate As Date, secondDate As Date
Dim i As Range

firstDate = DateValue(Range("A2"))
secondDate = DateAdd("d", 6, firstDate)

MsgBox secondDate

For Each i In Range("A:A")
If i.Value > secondDate Then
i.Select
ActiveCell.EntireRow.Delete

End If
Next i


End Sub 
4

1 に答える 1

1

2 つの問題に役立つものを追加しました。

1) lngCounter = Cells.Find("*", [A1], , , xlByRows, xlPrevious).row は、元のコードが列 A の各セルを調べるため、データの最後の行を見つけます。新しいバージョンの Excel を使用している場合は 100 万。

2) ヘッダー行を削除しないように、列 A の行 2 でデータの検索を開始しました。

お役に立てれば!

Sub deletedates()

Dim firstDate As Date, secondDate As Date
Dim i As range
Dim lngCounter As Long
Dim strRange As String

lngCounter = Cells.Find("*", [A1], , , xlByRows, xlPrevious).row 'Find last row of data

strRange = "a2:a" & lngCounter 'Start at Row 2, Column A, finish at last row of Column A

firstDate = DateValue(range("A2"))
secondDate = DateAdd("d", 6, firstDate)

'MsgBox secondDate

    For Each i In range(strRange) 'Starts at second row of data.

        If i.Value > secondDate Then
        i.Select
        ActiveCell.EntireRow.Delete

        End If

    Next i

End Sub
于 2013-06-17T12:06:37.350 に答える