СообЧа > База Знаний > Программы > MS Excel

Вопрос

Есть — Win 98 , Excel 97 как написать макрос , поиск слова в строке и удаления именно этой строки?

Ответ

Sub DelStrok() Dim te,
r As String
If Selection.Cells.Count > 1
Then Set sel = Selection
Else Set sel = Cells
End If te = InputBox("Строка поиска:", _ "Задать строку поиска для удаления строк")
If te <> ""
Then Err.Clear On Error Resume
Next Do '***
r = sel.Find(What:=te, _ After:=ActiveCell, _ LookIn:=xlValue, _ LookAt:=xlWhole, _ SearchOrder:=xlByColumns, _ SearchDirection:=xlNext, _ MatchCase:=False).Address
If Err.Number <> 0
Then Exit Do '****
Else Range®.Activate Rows(Range®.Row).Delete
End If Loop '***
End If
End Sub


*** — ВНИМАНИЕ!!!
Эти строки можно закомментировать или удалить, если нужно, чтобы удалялась только одна первая попавшаяся строка, удовлетоворяющая условию поиска, а не все в выделенной области на листе (или на всем листе, если ничего не выделено особо).

Прим.:
Удаляются только те строки, содержимое значение которых полностью совпадает с заданной строкой поиска. Чтобы все работало еще и по совпадению части стороки, нужно заменить xlWhole на xlPart в параметрах метода Find.

Из конференции Expert_FAQ



Copyright © 2000-2004 Сообщество Чайников
Контактная информация