если в диапазоне найдено значение одной ячейки, удалить всю строку
Я работаю с ежедневными данными, которые записывают данные за 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 / non-leapyear) в данных и удалю строку, но она оказалась чрезвычайно трудно сопоставить значение в диапазоне. Я думал о чем-то вроде этого:
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
Любая помощь или другой способ справиться с этим очень ценится!