Как добавить условие в мою функцию поиска? - PullRequest
0 голосов
/ 29 мая 2018

поэтому у меня есть этот код, что он делает, он находит слово «Hello» в столбце, и если эта строка найдена в столбце «J», вся строка будет удалена, но я хотел сохранить все строкисо словом «Мир», хотя в ячейке есть и «Привет», и «Мир».Например:

Столбец J
1 Привет, мир
2 Привет, человек
3 Привет всем
4 Привет, человек
5 Привет, мир
6 Привет всем
7 Привет человек
8 Привет мир

Единственные строки, которые должны остаться, это 1,5 и 8. Спасибо, любая помощь будет оценена.

Sub Test()
Dim c As Range
Dim SrchRng

Set SrchRng = ActiveSheet.Range("J1", ActiveSheet.Range("J65536").End(xlUp))
Do
    Set c = SrchRng.Find("Hello", LookIn:=xlValues)
    If Not c Is Nothing Then c.EntireRow.Delete
Loop While Not c Is Nothing

End Sub

1 Ответ

0 голосов
/ 29 мая 2018

Я обычно рекомендую использовать цикл For, начиная с конца и работая вверх, когда вы удаляете строки.

Это должно работать для вас:

Sub test2()
Dim c As Range, SrchRng As Range
Dim ws as Worksheet
Set ws = ActiveSheet
Set SrchRng = ws.Range("J1", ws.Range("J65536").End(xlUp))

Dim i As Long, lastRow As Long
lastRow = SrchRng.Rows(SrchRng.Rows.Count).Row

With ws
    For i = lastRow To 1 Step -1
        If InStr(1, .Cells(i, 10), "Hello") >= 1 And InStr(1, .Cells(i, 10), "world") = 0 Then
            .Rows(i).EntireRow.Delete
        End If
    Next i
End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...