【发布时间】:2015-04-16 17:56:37
【问题描述】:
我不擅长 VBA,但有人要求我为我的公司创建一个工具,让用户可以放入日期信息列表;需要分析信息,并且所有记录的日期早于不同的静态日期(下面,它在单元格“O2”中。我至少能够删除一些记录,但它符合我需要的标准,我的记录没有被正确删除:
Sub RemoveDates()
Dim rng As Range
Dim rng2 As Range
On Error Resume Next
Set rng2 = Range("M3:M1002")
For Each rng In rng2
If CDate(rng) < CDate("O2") Then
rng.EntireRow.Delete
Else
End If
Next
End Sub
日期都将存储在 M3:M1002 范围内,尽管条目数是可变的,但它们总是小于 1000。我想删除包含小于固定日期的日期的行单元格“O2”。当我运行宏时,我删除了一些日期,但仍有一些日期早于“O2”中列出的日期
谢谢
【问题讨论】:
-
是否跳过?你正在经历它,所以当你
entirerow.delete说.. 第 12 行时,第 13 行达到第 12 行,循环进入第 13 行,跳过第 13 行的初始值 -
我认为这就是正在发生的事情。正如我所说,我不精通 VBA,所以我不确定,我如何确保不会发生这种情况?