Вы можете добавить столбец X к исходному листу с заголовком «Condx for DELETE» и заполнить этот столбец формулой, представляющей условие DELETE в виде логического значения - как в вашем случае: = НЕ (ИЛИ (A2 = 8000,A2 = 9000)) (предполагаемые значения 8000, 9000 и т. Д. Появляются в столбце A)
Затем вы циклически перебираете исходную таблицу и удаляете все записи, для которых столбец X равен TRUE.При условии, что
- ваш источник был определен в VBA как объект диапазона (MyRange)
- , первая строка является строкой заголовка
- нет пустых ячеек в первом столбцемежду заголовком и концом списка
- условие находится в 3-м столбце
очиститель может выглядеть следующим образом
Sub MySub()
Dim MyRange As Range, Idx As Integer, MyCondx As Integer
Set MyRange = ActiveSheet.[A1] ' represent source data as a range
Idx = 2 ' asuming one header row
MyCondx = 3 ' asuming condition is in 3rd column
Do While MyRange(Idx, 1) <> ""
If MyRange(Idx, MyCondx) Then
MyRange(Idx, 3).EntireRow.Delete
Else
Idx = Idx + 1
End If
Loop
End Sub
Таким образом, вы получаете полную прозрачность,нет жесткого кодирования, и вы очень гибки, чтобы не только изменить набор из 2 значений, но и указать, какое условие служит бизнесу.
Надеюсь, это поможет - удачи