Удаление строк по условию - VBA (49116)

Узнай цену своей работы

Формулировка задачи:

Подскажите пожалуйста, как произвести удаление строк по условию, необходимо удалить строки при условии если в столбце "ПОКАЗАТЕЛЬ" показатель3 равен значению 10 в столбце "ЗНАЧЕНИЕ" и удаление строк должно происходить по столбцу "ФИО", т.е. если у чел.1 показатель 3 равен 10 то он должен остаться с другими показателями, а все те чел. у которых показатель3 неравен 10 должны удалится
ФИО ПОКАЗАТЕЛЬ ЗНАЧЕНИЕ    
чел.1 показатель1 10    
чел.1 показатель2 11    
чел.1 показатель3 10    
чел.1 показатель4 13    
чел.1 показатель5 14    
чел.1 показатель6 15    
чел.1 показатель7 16    
чел.1 показатель8 17    
чел.2 показатель1 1   должно удалится
чел.2 показатель2 2   должно удалится
чел.2 показатель3 3   должно удалится
чел.2 показатель4 4   должно удалится
чел.2 показатель5 5   должно удалится
чел.2 показатель6 6   должно удалится
чел.3 показатель1 10    
чел.3 показатель2 10    
чел.3 показатель3 10    
чел.3 показатель4 10    
чел.3 показатель5 10    
чел.3 показатель6 10    
чел.4 показатель1 20   должно удалится
чел.4 показатель2 21   должно удалится
чел.4 показатель3 22   должно удалится

Решение задачи: «Удаление строк по условию»

textual
Листинг программы
Sub tt()
    Dim r As Range, a, i As Long
 
    Set r = Cells.Find("чел.1").CurrentRegion: a = r.Value
    With CreateObject("scripting.dictionary"): .comparemode = 1
        For i = 2 To r.Rows.Count
            If a(i, 2) = "показатель3" Then
                If a(i, 3) = 10 Then .Item(a(i, 1)) = 0&
            End If
        Next
 
        For i = r.Rows.Count To 2 Step -1
            If Not .exists(a(i, 1)) Then r.Rows(i).EntireRow.Delete
        Next
    End With
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы