Нахождение последнего дня месяца - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть рабочий лист сотрудников и даты с отработанными часами. Я хочу заархивировать сотрудников за последние 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.

text

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

1 Ответ

0 голосов
/ 16 апреля 2020

, если вы всегда хотите, чтобы последний день месяца соответствовал дате в E4, это будет

date2 = Format(WorksheetFunction.EoMonth(Range("E4"),0), "yyyy-mm-dd")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...