2

如果日期比今天晚了一个多星期,我正在尝试删除整行数据,但我不想删除标题。今天的日期是出现在 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

我添加了一些有助于解决两个问题的内容:

1) lngCounter = Cells.Find("*", [A1], , , xlByRows, xlPrevious).row 查找最后一行数据,因为您的原始代码将查看 A 列中的每个单元格,这可能超过如果您使用较新版本的 Excel。

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 回答