2016-02-06 4 views
0

Это макрос, который проверяет, были ли строки старше 30 минут СЕЙЧАС и очищает их, если они не являются. Я пытаюсь изменить:Проверьте, не находится ли строка в пределах определенного лимита времени

Loop Until > Lastrow 

вместо этого цикла только до тех пор, пока не достигнет первой строки в течение 30 минут в настоящее время (чтобы уменьшить объем вычислений, как машина борется). Я испробовал варианты:

Loop Until .Cells(i, "A") > TimeLimit 

Но, не повезло. Любая помощь очень ценится! Контекст:

Lastrow = Range("A1").SpecialCells(xlCellTypeLastCell).row 

With ws1 
i = 1 
    TimeLimit = Time - TimeSerial(0, 30, 0) 
     Do 

       If .Cells(i, "A") < TimeLimit Then 
        .Cells(i, "A").EntireRow.ClearContents 
       End If 

      i = i + 1 
     Loop Until i > Lastrow 
    End With 

    End Sub 

Вот код таймера он должен пойти в:

Sub Update() 

    With Sheets("DATA") 

     rw = .Cells(.rows.Count, 1).End(xlUp).row + 1 
     .Range(.Cells(rw, 1), .Cells(rw, 6342)).value = Sheets("DATA").Range("A7:IJZ7").value 

    End With 
    Application.OnTime Now + TimeSerial(0, 0, 1), "update" 

End Sub 

ответ

0

Попробуйте это:

Option Explicit 
Sub Clear() 

Dim wb As Workbook 
Dim ws1 As Worksheet 
Dim Lastrow As Long 
Dim i As Long 
Dim TimeLimit As Date, ChkTIme As Date 

Set wb = ThisWorkbook 
Set ws1 = wb.Sheets("Sheet1") 

Lastrow = ws1.Cells(Rows.Count, 1).End(xlUp).Row 

TimeLimit = Time - TimeSerial(0, 30, 0) 
For i = 10 To Lastrow     'Since your data starts from row 10 
ChkTIme = CDate(ws1.Range("A" & i).Value) 

    If ChkTIme < TimeLimit Then 
       ws1.Rows(i).EntireRow.ClearContents 
    Else: End If 

Next i 

End Sub 

Кроме форматирования цв А формат времени будет хорошо.

+0

Спасибо, но я получаю несоответствие типа ChkTIme .. col A во временном формате. –

+0

Попробуйте использовать его сейчас, он отлично работает на моем конце, вы можете опубликовать снимок экрана рабочего листа в своем вопросе. – newguy

+0

Думаю, я знаю, почему: мои данные начинаются с строки 10, а в других форматах данных используются ячейки выше. Я попробую переформатировать лист и включить ваш код в таймер. Еще раз спасибо! –

Смежные вопросы