|
|
|
Удаление лишних строк
|
|||
|---|---|---|---|
|
#18+
Всем доброго утра! Пытаюсь удалить лишние строки где в трех разных столбцах отсутствуют записи. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 06:17 |
|
||
|
Удаление лишних строк
|
|||
|---|---|---|---|
|
#18+
Что-то типа такого (удаляем строки в диапазоне, у которых первая, третья и пятая ячейка - пустые) : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 07:23 |
|
||
|
Удаление лишних строк
|
|||
|---|---|---|---|
|
#18+
AndreTM, У меня таблица очень большая. Здесь строки удаляются перебором. Очень долго. А нельзя как-нибудь разом всё удалить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 07:47 |
|
||
|
Удаление лишних строк
|
|||
|---|---|---|---|
|
#18+
"Очень большая" в любом случае не более миллиона. Вы пробовали запускать приведенный код или нет? Заодно сразу скажу, что неплохо бы для начала попробовать использовать управление свойствами Application.ScreenUpdating и Application.Calculation, если у вас происходит "торможение". С другой стороны, ваша проблема (именно с точки зрения ускорения) может быть решена радикально другим образом - использованием коннекта ADODB с запросом "UPDATE...SET...". но для этого надо бы ориентироваться на пример ваших реальных данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 08:07 |
|
||
|
Удаление лишних строк
|
|||
|---|---|---|---|
|
#18+
AndreTM, Конечно, я запустил код. Медленно Поставил Application.ScreenUpdating = False, быстрее не стало. Мне нужно обработать порядка 15 000 строк. Таблица проста (прил.), там должны удалиться 3 и 8 строка. Ключевые столбцы обведены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 08:32 |
|
||
|
Удаление лишних строк
|
|||
|---|---|---|---|
|
#18+
pal_bil, в модуль листа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 08:51 |
|
||
|
Удаление лишних строк
|
|||
|---|---|---|---|
|
#18+
kuklp, Таблица в приложении просто пример, в оригинале она больше и удаляемые строки могут время от времени разниться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 08:54 |
|
||
|
Удаление лишних строк
|
|||
|---|---|---|---|
|
#18+
Нихрена не понял... Вы точно не модифицировали код "под себя"? У меня на 35000 строк выполняет удаление ~ за 10 -5 сек... Запустите в примере на Листе2 макрос TEST() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 09:10 |
|
||
|
Удаление лишних строк
|
|||
|---|---|---|---|
|
#18+
pal_bilkuklp, Таблица в приложении просто пример, в оригинале она больше И что? pal_bilи удаляемые строки могут время от времени разниться.Что значит "разниться"? Они и в примере разные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 09:27 |
|
||
|
Удаление лишних строк
|
|||
|---|---|---|---|
|
#18+
AndreTM, не совсем так. Попробуйте: MsgBox Time - Time0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 09:30 |
|
||
|
Удаление лишних строк
|
|||
|---|---|---|---|
|
#18+
kuklp, И что? проверил - =0,0000115740740740389... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 09:37 |
|
||
|
Удаление лишних строк
|
|||
|---|---|---|---|
|
#18+
AndreTM, такая конструкция правильней: Time0 = Timer MsgBox Timer - Time0 Попробуйте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 09:46 |
|
||
|
Удаление лишних строк
|
|||
|---|---|---|---|
|
#18+
А, да тормознул... Думал (и подразумевал) одно, а прописал другое Пробовать и не буду - именно это и имелось ввиду. Ну, это простительно - утро на дворе, а я еще не спал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 09:48 |
|
||
|
Удаление лишних строк
|
|||
|---|---|---|---|
|
#18+
AndreTM, Да, у вас быстро удалились. Но это наверно из за того, что удаляемых строк мало. А у меня их очень много. Из 15 000 строк нужными оказываются где около 100 строк, остальные удаляются. Интервалы нужны потому что набор записей может быть всегда разным. Данные экспортируются вот таким вот образом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 09:52 |
|
||
|
Удаление лишних строк
|
|||
|---|---|---|---|
|
#18+
Тем не менее Ваш код работает быстро. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 09:53 |
|
||
|
Удаление лишних строк
|
|||
|---|---|---|---|
|
#18+
Есть еще такой код, которые работает быстрее Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 10:13 |
|
||
|
Удаление лишних строк
|
|||
|---|---|---|---|
|
#18+
AndreTM, у Вас ошибка в коде. Пример с исправленым кодом. Уже далеко не так быстро. И свой туда добавил для сравнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 10:15 |
|
||
|
Удаление лишних строк
|
|||
|---|---|---|---|
|
#18+
pal_bil, можно, но быстрей не будет. Сравнивайте. Быстрей либо через ADO, либо массивом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 10:28 |
|
||
|
Удаление лишних строк
|
|||
|---|---|---|---|
|
#18+
kuklp, На ADO Код: 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. для вашего случая, данные на листе "Лист1", начиная с ячейки А1 данные выводяться на лист 2 (должен быть создан) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 11:43 |
|
||
|
Удаление лишних строк
|
|||
|---|---|---|---|
|
#18+
kuklp, Что означает For i = 2 To 8 Step 3? У меня удаляются вместе с ненужными и нужные строки. В оригинальном файле мне нужно оставить строки, где есть значения в любом из столбцов A, H и О - 1, 8 и 15 соответственно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 12:35 |
|
||
|
Удаление лишних строк
|
|||
|---|---|---|---|
|
#18+
Всё, разобрался. Всем спасибо за ответы. Пригодился вариант, предложенный kuklp. Он проще и главное быстрее. В этом участке кода Код: plaintext 1. Благодарю всех еще раз! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 12:48 |
|
||
|
Удаление лишних строк
|
|||
|---|---|---|---|
|
#18+
pal_bil, так удалит только те строки, в которых со 2 по 8 столбец пусто. А я исходил из Вашего примера. Там при Вашем подходе ничего не удалится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 13:20 |
|
||
|
Удаление лишних строк
|
|||
|---|---|---|---|
|
#18+
И еще. При усредненном подходе(разные к-ва нужных и ненужных) вариант Димы(R Dmitry) ИМХО должен быть быстрей моего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 13:24 |
|
||
|
Удаление лишних строк
|
|||
|---|---|---|---|
|
#18+
kuklp, Да, вы правы, там ничего не удалилось бы. Просто в пустых строках у меня должны были стоять некоторые формулы для расчета, но я их вставил макросом после удаления. Это не важно. А вот вариант R Dmitry может и быстрее, разницу сложно на глаз уловить. За то у вас писанины меньше ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 13:34 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=37456751&tid=2176459]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
176ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 200ms |
| total: | 484ms |

| 0 / 0 |
