【发布时间】:2013-10-07 20:40:50
【问题描述】:
我正在处理每个站点记录 31 天数据的每日数据,我需要一个 VBA 代码来删除闰年日。我有一个记录的数据日期列表和一个我想删除的不是闰年的年份列表。为了删除额外的 30 和 31 天,我使用了以下基本代码:
Dim lastrow, i As Long
lastrow = ActiveSheet.Cells(65536, 1).End(xlUp).Row
For i = 1 To lastrow
'delete 31st days for February
If ActiveSheet.Range("D" & i) = 2 And ActiveSheet.Range("E" & i) = 31 Then
Rows(i).Select
Selection.Delete shift:=xlUp
End If
Next i
非常简单并且运行良好,所以我希望能够做类似的事情,在数据中找到不存在的日期(即 02/29/非闰年)并删除该行,但结果是很难匹配一个范围内的值。我的想法是这样的:
Dim lastrow, i As Long, leapyear as Workbook
Set leapyear = Workbooks("LeapYears.xlsx")
lastrow = ActiveSheet.Cells(65536, 1).End(xlUp).Row
For i = 1 To lastrow
'obviously this is where I have the problem trying to match a cell to a range
If ActiveSheet.Range("D" & i) = leapyear.Sheets(1)range("C2:C90") Then
Rows(i).Select
Selection.Delete shift:=xlUp
End If
Next i
非常感谢任何帮助或其他方式来处理这个问题!
【问题讨论】: