Как я могу создать цикл, чтобы получить две последние даты в диапазоне ячеек подряд - PullRequest
1 голос
/ 15 апреля 2019

У меня есть код, который работает для обхода диапазона, чтобы выяснить, является ли дата меньше текущей даты и, если это так, очистить ячейку, а также две ячейки перед ней.Но у меня возникают проблемы с получением кода, который затем перебирает один и тот же диапазон и находит две самые последние даты и очищает содержимое, как первый цикл всех остальных, но последние две даты.Так как я просто новичок в кодировании, я не смог заставить его работать даже с помощью некоторых сайтов в сети.

Вот последняя вещь, которую я пытался повторить и найти две последние даты.

For Each cell In Range("Q2:Q1000")
        If cell.Value < cell.Offset(0, 3).Value Or cell.Offset(0, 
        6).Value Or 
        cell.Offset(0, 9).Value Or cell.Offset(0, 12).Value Or 
         cell.Offset(0,15).Value Then
       cell.ClearContents
       End If

       If cell = "" Then
       cell.Offset(, -1) = ""
       cell.Offset(, -2) = ""
       End If




Here is the code to find out if contents is more than 2 years old.



For Each cell In Range("Q2:Q1000")
        If cell.Value < (currentDate - 730) Then
        cell.ClearContents

       End If


       If cell = "" Then
       cell.Offset(, -1) = ""
       cell.Offset(, -2) = ""
       End If

Next

Я думаю, что упускаю что-то простое, но не могу найти это.

1 Ответ

1 голос
/ 15 апреля 2019

Вот метод, чтобы очистить все ячейки с датами старше двух последних дат.Это предполагает, что ваши значения в Range("Q2:Q1000") правильно отформатированы Date ячейки:

Dim cel as Range

For CurRow = 2 to 1000
    'Find the 2nd most recent date:
    BeforeDate = Application.WorksheetFunction.Large(Range("Q" & CurRow & ",T" & CurRow & ",W" & CurRow & ",Z" & CurRow & ",AC" & CurRow & ",AF" & CurRow),2)

    For Each cel In Range("Q" & CurRow & ",T" & CurRow & ",W" & CurRow & ",Z" & CurRow & ",AC" & CurRow & ",AF" & CurRow)
        If cel.Value < BeforeDate Then
            cel.ClearContents
            cel.Offset(, -1) = ""
            cel.Offset(, -2) = ""
        End If
    Next cel
Next CurRow
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...