У меня есть файл Excel с необработанными данными на одном листе (данные прогноза) и списком значений на другом листе (NonNSX). Я пытаюсь написать код, который будет циклически проходить по столбцу D в данных, и если он найдет список значений в NonNSX, удалите всю строку в данных.
Мне нужно, чтобы он проверил все строки данных на предмет первого значения, отличного от NNX, затем вернулся к началу данных и проверил наличие 2-го значения на языке, отличном от NNX, и зациклил все это до завершения. В данных часто встречается несколько дубликатов одного и того же значения в NSX, и мне нужно удалить их все.
Приведенный ниже код работает, но он удаляет ОДНУ из строк в Data для каждого значения каждый раз, когда я запускаю код. Есть идеи? Примечание: «d = d-1» внутри IF - это настройка номера строки для просмотра следующего, если строка действительно удалена)
Вот код:
Sub Remove()
Set nsx = Sheets("NonNSX")
Set fc = Sheets("Forecast Data")
Dim n As Integer
Dim d As Integer
Dim r As Integer
n = 1
d = 2
r = 1
NumRows = fc.Range("D2", fc.Range("D2").End(xlDown)).Rows.Count
Do Until IsEmpty(nsx.Range("A" & n))
For r = 1 To NumRows
If nsx.Range("A" & n) = fc.Range("D" & d) Then
fc.Range("D" & d).EntireRow.Delete
Exit For
d = d - 1
End If
d = d + 1
Next r
d = 2
n = n + 1
Loop
End Sub