У меня проблемы с выяснением того, как сделать так, чтобы мои данные фильтровались по дате. В настоящее время мой код сортирует данные на основе аббревиатуры в столбце A и отправляет их на соответствующий лист. Теперь мне нужно также отфильтровать его по датам, если дата попадает между (май, год) и (июнь, год + 1), то она должна перейти на другой лист под названием APEGA. Но все данные за тот же год также должны идти в PDH_Handover
Мой код:
Dim c As Range
Dim j As Integer
Dim Source As Worksheet
Dim Target As Worksheet
' Change worksheet designations as needed
Set Source = ActiveWorkbook.Worksheets("Running Log")
Set Target = ActiveWorkbook.Worksheets("PDH_Handover")
j = 11 ' Start copying to row # in target sheet
For Each c In Source.Range("A1:A1000") ' range of the running log input
If c = "PP" Then
Source.Cells(c.Row, 2).Resize(, 4).Copy Target.Cells(j, 1) ' Deletes the abbreviation of the row
j = j + 1 ' makes it paste to the next open row
End If
Next c
j = 21
For Each c In Source.Range("A1:A1000")
If c = "FA" Then
Source.Cells(c.Row, 2).Resize(, 4).Copy Target.Cells(j, 1)
j = j + 1
End If
Next c
j = 50
For Each c In Source.Range("A1:A1000")
If c = "IA" Then
Source.Cells(c.Row, 2).Resize(, 4).Copy Target.Cells(j, 1)
j = j + 1
End If
Next c
j = 64
For Each c In Source.Range("A1:A1000")
If c = "P" Then
Source.Cells(c.Row, 2).Resize(, 4).Copy Target.Cells(j, 1)
j = j + 1
End If
Next c
j = 78
For Each c In Source.Range("A1:A1000")
If c = "PR" Then
Source.Cells(c.Row, 2).Resize(, 4).Copy Target.Cells(j, 1)
j = j + 1
End If
Next c
j = 91
For Each c In Source.Range("A1:A1000")
If c = "CK" Then
Source.Cells(c.Row, 2).Resize(, 4).Copy Target.Cells(j, 1)
j = j + 1
End If
Next c
End Sub