У меня есть рабочий лист сотрудников и даты с отработанными часами. Я хочу заархивировать сотрудников за последние 3 месяца на другой лист, поэтому я перехожу к следующему:
Sub Archive()
Worksheets("DATA").Activate
Dim date1 As String, date2 As String
Dim date1Cell As Range, date2Cell As Range, valRng As Range, row As Range, names As Range
Dim LastRow As Long
Set valRng = Range("A1:A1000")
date1 = Format(Range("E2"), "yyyy-mm-dd") 'It's 2020-01-01
date2 = Format(Range("E4"), "yyyy-mm-dd") 'It's 2020-03-01
Set names = Worksheets("DATA").Cells(6, 1)
names.EntireRow.Select
Selection.Copy
Worksheets("Sheet1").Activate
With ActiveSheet
LastRow = .Rows(.Rows.Count).End(xlUp).row
End With
Cells(LastRow, 1).Offset(1, 0).PasteSpecial
Worksheets("DATA").Activate
For Each i In valRng
If i.Text = date1 Then Set date1Cell = i
If i.Text = date2 Then Set date2Cell = i
Next i
Range(date1Cell, date2Cell).EntireRow.Select
Selection.Copy
Worksheets("Sheet1").Activate
Cells(LastRow, 1).Offset(2, 0).PasteSpecial
End Sub
Итак, теперь мой вопрос: как мне найти последний день месяца в date2
, чтобы включили выбор даты до 2020-03-31? Как и на экране, мне нужно выбрать остальные даты ниже 2020-03-01.

Я пробовал это, но это неправильно If i.Text = WorksheetFunction.EoMonth(date2, 0) Then Set date2Cell = i