Удаление строк по условию - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д