|
|
|
Как удалить строку, если ячейка содержит опред. текст.
|
|||
|---|---|---|---|
|
#18+
Есть столбец, который содержит названия фирм и пустые ячейки. Как удалить строку, ячейка которой содержит текст "ООО" (далее идет название), т.е. оставить все ОООшки, остальные удалить??? Пока что удаляю только конкретные названия. Так же надо удалить строки, если ячейка пуста. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 07:10:33 |
|
||
|
Как удалить строку, если ячейка содержит опред. текст.
|
|||
|---|---|---|---|
|
#18+
Код: plaintext THINK! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 08:31:30 |
|
||
|
Как удалить строку, если ячейка содержит опред. текст.
|
|||
|---|---|---|---|
|
#18+
Скажите пожалуйста, что такое "book_TNS"? А "Worksheets("Sheet1")" - это тоже самое что и "book_TNS.Worksheets("Лист1")"? Если я знаю в какой колонке искать, немогу ли написать вот так? Set progr = book_TNS.Worksheets("Лист1").Range("a2:a2").Find(What:="Автомобиль*", LookIn:=xlValues) ? Цикл "For i = x To 2 Step -1" начинается с последней записи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2008, 13:33:42 |
|
||
|
Как удалить строку, если ячейка содержит опред. текст.
|
|||
|---|---|---|---|
|
#18+
trevojnui"Worksheets("Sheet1")" - это тоже самое что и "book_TNS.Worksheets("Лист1")"? Если book_TNS есть кодовое имя активной книги (ActiveWorkbook.CodeName), то почти что да. "Почти" - потому, что имя листа (не кодовое, а то, что обозначено на ярлычке листа) в одном случае Sheet1, а в другом Лист1, - а это совсем-совсем разные имена. По какой причине уважаемый trevojnui выбрал именно такой способ адресации, он не сказал, но ему виднее. trevojnuiЕсли я знаю в какой колонке искать, немогу ли написать вот так? Set progr = book_TNS.Worksheets("Лист1").Range("a2:a2").Find(What:="Автомобиль*", LookIn:=xlValues)? Написать так (да ещё и не так) можно. А вот получить желаемый результат, как я его понимаю, - нет. Это поиск в одной-единственной ячейке, A2. Не говоря уже о том, что у вас и кодовое имя книги наверняка другое, и имя листа тоже. Как обычно, поставив курсор на Find и нажав F1, можно узнать много интересного. В частности, по поводу "Автомобиль * ": To find cells that match more complicated patterns... trevojnuiЦикл "For i = x To 2 Step -1" начинается с последней записи? Да. После удаления нижние строки подтягиваются вверх, и если идти сверху вниз, то при организации цикла при помощи оператора For будет пропущена без рассмотрения строка, сразу следующая за удалённой и потому занявшая её место. * * * Исходный код мог бы удалить только строки с "ООО МММ". Но он не удалит ничего - просто потому, что в нём всегда будет x = 2, а там не "ООО МММ". Я бы предложил Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2008, 15:26:15 |
|
||
|
Как удалить строку, если ячейка содержит опред. текст.
|
|||
|---|---|---|---|
|
#18+
Вместо "по какой причине уважаемый trevojnui выбрал" читать "по какой причине уважаемый(ая) Anytka выбрал(а)" etc. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2008, 15:30:15 |
|
||
|
Как удалить строку, если ячейка содержит опред. текст.
|
|||
|---|---|---|---|
|
#18+
1. Пожалуй, точнее будет Код: plaintext Можно изощриться и добавить туда еще левые (открывающие) кавычки - "ёлочки", "лапки" etc. 2. Кроме того, из заглавного поста (мягко говоря) не вполне ясно, следует ли "ооошки" удалять или, наоборот, оставлять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2008, 15:45:43 |
|
||
|
Как удалить строку, если ячейка содержит опред. текст.
|
|||
|---|---|---|---|
|
#18+
Спасибо! все, разобрался :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2008, 16:37:40 |
|
||
|
Как удалить строку, если ячейка содержит опред. текст.
|
|||
|---|---|---|---|
|
#18+
Если все же критерии поиска - не такие сложные, и можно обойтись без regular expresions или квази- regular expresions (оператор Like), то перебор в сочетании с Find и SpecialCells(xlCellTypeBlanks) будет значительно экономичнее представленных выше: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2008, 17:44:29 |
|
||
|
Как удалить строку, если ячейка содержит опред. текст.
|
|||
|---|---|---|---|
|
#18+
Пардон "OOO" в переменной ptrn стоят в лат. коде, т.ч. их надо поменять на русск. KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2008, 17:46:36 |
|
||
|
Как удалить строку, если ячейка содержит опред. текст.
|
|||
|---|---|---|---|
|
#18+
Сделал один интересный тест и решил выложить его тут, т.к. этот топик более-менее соответствует поставленной задаче. А поставленная задача - типичная для экселя: есть столбец с условием (в моём случае это простейшее условие в столбце "В"). Стоит задача собрать вместе (сжать) строки, для которых условие выполняется. Признаться, полученными результатами сам был немного удивлён :-) Не думал, что получится обогнать SpecialCells() И так, смотрим вложение... (2 части) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2008, 14:08:38 |
|
||
|
Как удалить строку, если ячейка содержит опред. текст.
|
|||
|---|---|---|---|
|
#18+
Part 2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2008, 14:09:05 |
|
||
|
Как удалить строку, если ячейка содержит опред. текст.
|
|||
|---|---|---|---|
|
#18+
Опять я нахимичил в самый последний момент - все 4 кнопки сбились в одно место :-) Перейдите в режим конструктора и расставьте кнопки на свои места :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2008, 16:01:50 |
|
||
|
Как удалить строку, если ячейка содержит опред. текст.
|
|||
|---|---|---|---|
|
#18+
Хм, похоже, что с вышеприведённым файлом проблемы не только с расположением кнопок. Для избежания "торможения" при открытии пришлось заменить формулы значениями, а заодно дополнил файл ещё несколькими вариантами. И так, ещё раз опишу задачу. Допустим, есть некая довольно большая таблица (в моём случае она состоит из одного столбца - Столбец1). Задача - выбрать из таблицы строки, соответствующие какому-либо условию по одному (нескольким) полям таблицы - т.е. типичная задача выборки (выше был пример с поиском "ООО"). Задача - осуществить поиск требуемых строк максимально быстро. Рассматривается 8 вариантов как это можно сделать :-). Первое место по скорости занимает вариант с исп. пользовательской функции Сцеп(). Второе - вариант с исп. ПОИСКПОЗ(). А вот третье место - вопрос спорный :-) Если после открытия файла не запускать вариант 7 (с исп. ПОИСКПОЗ()) и флажок "Заменять значениями" будет установлен, то 3е место займёт вариант 6 (на основе автофильтра). Если же хоть раз запустить вар.7, то вар. 6 будет заметно медленнее выполняться (по крайней мере у меня так). Почему так - не знаю :-) А если снять галочку "Заменять значениями" и запустить хоть один формульный вариант, то автофильтр оказывается далеко сзади :-). Самый же простой вариант на основе НАИМЕНЬШИЙ() оказывается самым медленным вариантом. Функцию НАИМЕНЬШИЙ() нецелесообразно использовать, когда параметр " k " (порядок наименьшего) представляет собой массив значительного размера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2008, 17:16:45 |
|
||
|
|

start [/forum/topic.php?fid=61&gotonew=1&tid=2180073]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
199ms |
get topic data: |
9ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 482ms |

| 0 / 0 |
