|
|
|
Найти и удалить строку
|
|||
|---|---|---|---|
|
#18+
Добрый вечер! Подскажите пожалуйста, что не так в коде Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Мне нужно удалить все строки, если в ячейках столбца B не содержится слово "песок". (Т.е. чтобы оставлял такие строки как "песок строительный", "используется кварцевый песок", а все остальные удалил) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2011, 17:44 |
|
||
|
Найти и удалить строку
|
|||
|---|---|---|---|
|
#18+
Zeratчто не так в коде то, что вы ищете, где песок, а надо искать, где нет песка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2011, 18:32 |
|
||
|
Найти и удалить строку
|
|||
|---|---|---|---|
|
#18+
Просто переберите нужные ячейки, проверяя функцией InStr наличие ключевого слова. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2011, 18:33 |
|
||
|
Найти и удалить строку
|
|||
|---|---|---|---|
|
#18+
Shocker.ProZeratчто не так в коде то, что вы ищете, где песок, а надо искать, где нет песка Ну да, я ищу ячейки, где есть песок, и если в ячейке нет песка, то удаляю строку, если есть то пропускаю. Именно так я хотел бы сделать. Но код не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2011, 19:23 |
|
||
|
Найти и удалить строку
|
|||
|---|---|---|---|
|
#18+
Shocker.ProПросто переберите нужные ячейки, проверяя функцией InStr наличие ключевого слова. Хотелось бы для начала попробовать поиском. Если не получится буду пробовать функцией InStr. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2011, 19:24 |
|
||
|
Найти и удалить строку
|
|||
|---|---|---|---|
|
#18+
ZeratНу да, я ищу ячейки, где есть песок, и если в ячейке нет песка , то удаляю строку, если есть то пропускаю. Именно так я хотел бы сделать. Но код не работает. код работает именно так как написан вы не видите противоречия в выделенном???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2011, 19:28 |
|
||
|
Найти и удалить строку
|
|||
|---|---|---|---|
|
#18+
Shocker.ProZeratНу да, я ищу ячейки, где есть песок, и если в ячейке нет песка , то удаляю строку, если есть то пропускаю. Именно так я хотел бы сделать. Но код не работает. код работает именно так как написан вы не видите противоречия в выделенном???? Тогда подскажите как подправить код, чтобы заработал. Или это невозможно с помощью этого метода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2011, 20:18 |
|
||
|
Найти и удалить строку
|
|||
|---|---|---|---|
|
#18+
ZeratТогда подскажите как подправить код, чтобы заработал. Или это невозможно с помощью этого метода? я не знаю, возможно ли в более старших версиях экселя делать поиск по НЕвхождению подстроки в строку, у меня под рукой только 2000-й, тут такой возможности нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2011, 20:42 |
|
||
|
Найти и удалить строку
|
|||
|---|---|---|---|
|
#18+
Zerat, с помощью этого метода - нельзя. Можно создать столбец и в нем через формулы выставлять признак наличия или отсуствия искомого значения в строке. Потом можно будет искать по стообцу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2011, 22:15 |
|
||
|
Найти и удалить строку
|
|||
|---|---|---|---|
|
#18+
Можно попробовать так, если в колонке 2 используется Validation,то можно использовать закомментированные строки с FormatConditions Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 08:43 |
|
||
|
Найти и удалить строку
|
|||
|---|---|---|---|
|
#18+
А может, не "код не работал", а "код работал не совсем верно"? и чем InStr() не нравится? Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 09:11 |
|
||
|
Найти и удалить строку
|
|||
|---|---|---|---|
|
#18+
С технической точки зрения "не так" в Вашем коде следующее: Код: plaintext 1. 2. 3. 4. 5. Вы пытаетесь удалять строки внутри диапазона, использую пустую ссылку на диапазон. Для Вашей задачи поиск вхождений не эффективен, Вам всеравно придется перебирать строки в цикле, что бы найти строку, не попавшую в диапазон найденых. Лучше (на мой взгляд) вобще отказаться от поиска и просто перебрать строки в цикле с проверкой наличия подстроки в ключевом столбце (в Вашем случае "B"). Тут вполне подходит InStr. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 10:00 |
|
||
|
Найти и удалить строку
|
|||
|---|---|---|---|
|
#18+
AndreTMА может, не "код не работал", а "код работал не совсем верно"? и чем InStr() не нравится? Код: plaintext 1. 2. 3. 4. 5. Ваш код - бесконечный цикл, т.к. i не меняется в ходе цикла. Если повезте так, что в последней строке использованного диапазона будет строка с наличием слова "песок", то не будет удалена ни одна строка, если в последней строке не будет песка, то будет удаляться строка с номером i до бесконечности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 10:18 |
|
||
|
Найти и удалить строку
|
|||
|---|---|---|---|
|
#18+
LKO, вообще-то с файнд может и лучше :) ищем первое вхождение песка, удаляем все строки до него, запоминаем строку, ищем дальше, удаляем строки от запомненной до найденной.. быстрее может быть, чем по одной удалять.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 13:26 |
|
||
|
Найти и удалить строку
|
|||
|---|---|---|---|
|
#18+
_slan_, не надо запоминать, надо строить Range под удаление Application.Union ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 13:48 |
|
||
|
Найти и удалить строку
|
|||
|---|---|---|---|
|
#18+
big-duke, не надо union - он тормозит :) надо именно как я сказал :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 13:55 |
|
||
|
Найти и удалить строку
|
|||
|---|---|---|---|
|
#18+
> Автор: big-duke > Application.Union Может не пойти, я как-то эксперементировал и натолкнулся что там есть ограничение, то ли на количество унионов(255 штук), то ли на длину строки(255 символов) в которой хранятся адреса Range'ей Короче мы пошли старым путём :) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 14:08 |
|
||
|
Найти и удалить строку
|
|||
|---|---|---|---|
|
#18+
Игорь ГорбоносМожет не пойти, я как-то эксперементировал и натолкнулся что там есть ограничение, то ли на количество унионов(255 штук), то ли на длину строки(255 символов) в которой хранятся адреса Range'ей Да-да, в VB даже топик был на эту тему, решали-решали задачу, в итоге наткнулись на ограничение для .Address Но если просто объединять строки, то есть это не будет несколько несвязанных диапазонов, то Addess ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 14:14 |
|
||
|
Найти и удалить строку
|
|||
|---|---|---|---|
|
#18+
.... Address расти не будет Ctrl+Enter - зло ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 14:15 |
|
||
|
Найти и удалить строку
|
|||
|---|---|---|---|
|
#18+
Хотя нет..... Если Дюк имел ввиду именно сбор всех строк, а потом удаление за один раз - тогда таки-да можно упереться в ограничение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 14:17 |
|
||
|
Найти и удалить строку
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, так это помимо.. а оно еще и тормозит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 14:36 |
|
||
|
Найти и удалить строку
|
|||
|---|---|---|---|
|
#18+
_slan_, ну, кстати, не обязательно при этом файнд, можно и перебирать в массиве, тока не удалять, пока не наберется.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 14:38 |
|
||
|
Найти и удалить строку
|
|||
|---|---|---|---|
|
#18+
Проверить видно не судьба. Длина адреса действительно ограничена в 255 символов, но нам для удаления адрес особо не нужен. Вот тестовый код. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. u.Areas.Count = 5001 u.select - выделяет то что нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 14:41 |
|
||
|
Найти и удалить строку
|
|||
|---|---|---|---|
|
#18+
LKOВаш код - бесконечный цикл, т.к. i не меняется в ходе цикла.Извиняюсь, забыл Выдавал прямо в форум, без тестирования Ну, кто меня знает, - уже наверняка сочли за feature in code... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2011, 02:05 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=37096880&tid=2177202]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
142ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 437ms |

| 0 / 0 |
