У меня есть файл excel, где на ячейках столбца 3d (C) есть текст. Если строка ячейки не содержит: "(DELETED)", я хочу, чтобы вся строка была удалена. Я пробовал следующий код, и он работает, но насколько это касается синтаксиса, его нужно отредактировать.Удалить строки Excel, если они не содержат определенную строку в ячейке
Sub sbDelete_Rows_IF_Cell_Contains_Specific_String()
Dim lRow As Long
Dim iCntr As Long
lRow = 5
For iCntr = lRow To 1 Step -1
celltxt = Cells(iCntr, 3).Value
If InStr(1, celltxt, "(DELETED)") Then
Else
Rows(iCntr).Delete
End If
Next
End Sub
Если сценарий находит клетки, которые содержат строку: «(Исключено)», то программа не будет ничего делать. Он удалит те, которые не содержат эту строку. Синтаксис плох, и мне интересно, как я могу комбинировать функции «InStr» и «IF NOT».
Функция InStr возвращает целое число, указывающее позицию текст можно найти по адресу , Хотя он может работать как логический, я бы посоветовал вам проверить, вернёт ли функция instr 0 (не найден) или положительное число (найдено). В вашем случае, вероятно, достаточно иметь Instr (1, celltxt, "" (Deleted) ") = 0 в инструкции if и затем удалить строку. – Tom
Изменить' If InStr (1, celltxt, "(DELETED)") Затем 'to' If Not InStr ..... 'и избавиться от' Else'. Это то, что вы имели в виду? – nhee
@nhee «If Not» не работает для меня. Возможно, это была ошибка. –