Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.08.2011, 01:53   #1
lyb4eg
Пользователь
 
Регистрация: 06.08.2011
Сообщений: 76
По умолчанию Как сделать такой поиск?

вопрос состоит в следующем, есть несколько слов, которые встречаются в строках таблицы, нужно удалить все строки, в которых есть эти слова. (Вся сложность в том, что там 12 слов и больше 220 000 строк). Наперёд благодарен!
Вложения
Тип файла: rar Книга2.rar (6.2 Кб, 17 просмотров)

Последний раз редактировалось lyb4eg; 13.08.2011 в 02:30. Причина: Неправильно задан вопрос
lyb4eg вне форума Ответить с цитированием
Старый 13.08.2011, 02:06   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

чтобы сделать такой поиск надо правильно вопрос сформулировать...
каждое из 12 слов? или хотя бы одно? в каких ячейках строки искать?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 13.08.2011, 02:34   #3
lyb4eg
Пользователь
 
Регистрация: 06.08.2011
Сообщений: 76
По умолчанию

Добавил пример. Так вот, то что в примере выделено желтым это слова по которым нужно отыскать ячейки (так ка пример, все несколько слов и строк), ниже приведены как примерно это выглядит ...(к примеру: нужно чтобы остались только ячейки
В13 и В15)
lyb4eg вне форума Ответить с цитированием
Старый 13.08.2011, 02:49   #4
lyb4eg
Пользователь
 
Регистрация: 06.08.2011
Сообщений: 76
По умолчанию

а, извините, и ещё, слова могут иметь разные окончания (быть в разных падежах). Потому не искать нужно не по всему слову, а только части...
lyb4eg вне форума Ответить с цитированием
Старый 13.08.2011, 03:10   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

маленькие/большие учитывать?
LG - коротковатое слово, как часть может встетиться во многих словах, строки будут удалены...
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 13.08.2011, 03:30   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

под Ваш пример
Код:
Sub DelIfFind()
  Dim wds() As String, r As Long, s As String, c As Long, i As Long
  c = Cells(Rows.Count, 5).End(xlUp).Row - 1
  ReDim wds(1 To c) As String
  For r = 2 To c + 1
    wds(r - 1) = UCase(Cells(r, 5))
  Next
  r = Cells(Rows.Count, 2).End(xlUp).Row
  Do
    s = UCase(Cells(r, 2))
    For i = 1 To c
      If InStr(s, wds(i)) > 0 Then Rows(r).Delete: Exit For
    Next
    r = r - 1
  Loop Until r = 1 Or Cells(r, 2) = ""
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 13.08.2011, 15:04   #7
lyb4eg
Пользователь
 
Регистрация: 06.08.2011
Сообщений: 76
По умолчанию

ОГРОМНЕЙШЕЕ спасибо IgorGO !!!! Как всегда очень помогли! Все работает!!!!
lyb4eg вне форума Ответить с цитированием
Старый 15.08.2011, 10:44   #8
lyb4eg
Пользователь
 
Регистрация: 06.08.2011
Сообщений: 76
По умолчанию

Извините, а нельзя так сделать что бы видеть, какие именно строки удаляются? (Что бы они куда то копировались или как то выделялись...)
lyb4eg вне форума Ответить с цитированием
Старый 15.08.2011, 11:01   #9
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Здесь есть пример макроса, который ищет, скрывает и удаляет определённые строки:
http://excelvba.ru/code/ConditionalRowsDeleting

На форме 2 кнопки - одну из которых несложно переделать для выделения строк (вместо скрытия)


Для этого замените последние 3 строки кода этим:

Код:
If Not delra Is Nothing Then    ' если подходящие строки найдены - выделяем или удаляем их
       If HideOnly Then delra.EntireRow.Select Else delra.EntireRow.Delete
    End If
EducatedFool вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как выполнить такой поиск в EXCEL... Al_Sha Общие вопросы Delphi 2 30.07.2011 18:24
Как сделать чтобы одна ячейка таблицы содержала такой же текст как другая? 3мей Microsoft Office Word 2 15.01.2011 22:55
Как сделать такой лист-вьев (скрин тут) и с помощью sendmessage вытянуть из i-ого итема текст? TwiX Общие вопросы Delphi 5 20.10.2009 23:05
как сделать или отдолжить такой же движок форума как по ссылке? Дим@ Свободное общение 5 13.10.2009 20:55
как сделать такой вот элемент? heallry HTML и CSS 6 21.09.2009 11:39