У меня есть рабочий лист, содержащий некоторые объединенные данные из двух разных источников. Существует один общий/общий столбец - время/дата.Excel VBA условное удаление макроса проблема
Столбцы B-E содержат данные, если столбцы F-G этого не делают, и наоборот.
Что я хочу сделать, это столбец F, когда я нахожу значение, я хочу перейти в столбец E и работать до тех пор, пока не найду значение. В этот момент я хочу проверить его значение - если оно меньше 4, то я хочу удалить строку, которая первоначально вызвала поиск столбца E.
Затем продолжайте движение вниз. Мне, вероятно, понадобится сделать это в обратном порядке (начиная с самого начала и прокладывая себе путь) из-за вещей, которые я нашел в прошлом, но пока не уверен.
Итак, мой код, над которым я сейчас работаю, выглядит следующим образом: он работает некорректно, и я пытаюсь устранить его, чтобы он работал правильно, но я испытываю трудности. Любая информация/совет/помощь, которую вы могли бы предоставить, были бы весьма признательны.
Set myrange = Sheets("Test Sheet").Range("F2", Range("F" & Rows.Count).End(xlUp))
For Each mycell In myrange
rrow = rrow + 1
If IsEmpty(mycell.Value) = False Then
For j = rrow To 0 Step -1
If IsEmpty(mycell.Offset(j, -1)) = False And mycell.Cells(j, -1).Value < 4 Then
mycell.Cells(rrow, -1).EntireRow.Delete
GoTo line
Else
End If
Next j
line:
Else
End If
Next mycell
Джон- Я попытался код, он работает лучше, чем у меня, но 67000 строк данных, он удаляется 1000, в результате чего многие, которые должны были быть удалены , Я прошел через логику, и похоже, что все работает хорошо, за исключением частей If ToDelete и Set Delete. Есть предположения? – user2501464
... Вы должны быть более конкретными, рассказывая мне, что не работает ... Я создал тестовый лист, и он отлично работал над моими данными ... «Если ToDelete Is Nothing» происходит только в первый раз, когда мы туда попадаем так как диапазон 'ToDelete' будет пустым. после этого мы просто добавляем строку, которую мы смотрим на диапазон «ToDelete» ... Как я уже сказал, макрос отлично работал на моей машине ... Дайте мне пример того, где он не работал ... –
... Одна возможная мысль ... Являются ли ячейки ДЕЙСТВИТЕЛЬНО пустыми для 'IsEmpty (Cells (XXXX, YYYY) .Value)' statment to work? Попробуйте изменить это на «Ячейки (XXXX, YYYY) .Value =" "' - В основном говорят, что они содержат и пустую строку ... –