Я пытаюсь кодировать цикл в Excel VBA, чтобы сделать следующее:Удалить строку, если 2 условия соблюдены - изменение во времени и то же значение в другой колонке
У меня есть столбец, который долгое дата + время , У меня есть другой столбец с текстовой строкой.
Я хочу, чтобы удалить всю строку, если изменение во времени (строка - строка выше) меньше, чем 0:00:05 И значение строки такой же (строка против ряда выше)
I бегу в проблемы с условием IF, особенно 5 второй части, это не нравится ...
For Lrow = Lastrow To Firstrow Step -1
'We check the values in the D column
With .Cells(Lrow, "D")
If Not IsError(.Value) Then
If (Cells(i,"D") - Cells(i-1,"D")) > (0:00:05) AND (Cells.Value(i,"F") =
Cells.Value(i-1,"F")
Then .EntireRow.Delete
End If
End With
Next Lrow
OK, код выше отстой. Я собираюсь исследовать другой подход. Я хочу сравнить столбец F - с текущей ячейкой с под ним. Если они совпадают, тогда вызывается следующее предложение - если текущая ячейка в D равна < 0:00:05 секунд, отличная от той, которая находится под ней, если это так, то удалите (или сохраните информацию для удаления вне цикла).
Если две ячейки в F не совпадают, перейдите к следующей ячейке.
Это имеет смысл? Позвольте мне разработать код и разместить его здесь.
Первое, что я заметил, что переменный счетчик 'LRow', но ссылки' i' в вашем заявлении 'If' ... Я не смотрел за что, хотя .... –
Джона - Хороший улов - я даже не был объявлен наверху, но даже с этим редактированием ему все еще не нравится линия IF с ячейками. Я думаю, что использование диапазона может быть лучшей альтернативой. – user2501464