|
Удаление большого количества строк по условию
|
|||
---|---|---|---|
#18+
Есть модуль, который удаляет строки из таблицы, если во втором столбце есть значение "3" (см. ниже). На небольшом количестве строк работает правильно, но если в таблице 50 000 строк почему-то удаляет все строки, а не с "3". Почему? Как это можно исправить? Модуль с удалением в цикле каждой строки на большом количестве строк работает долго, поэтому выбран этот способ. Sub Test() Selection.AutoFilter Field:=2, Criteria1:="3" Range("B2").Select Range(Selection, Selection.End(xlDown)).Select Selection.EntireRow.Delete End Sub ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2020, 21:15 |
|
Удаление большого количества строк по условию
|
|||
---|---|---|---|
#18+
Guest1 Selection.EntireRow.Delete Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2020, 11:19 |
|
Удаление большого количества строк по условию
|
|||
---|---|---|---|
#18+
The_Prist, пока не получилось, ошибка: невозможно получить свойство SpecialCells класса Range описание ошибки и попытка исправления - во вложении. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2020, 17:07 |
|
Удаление большого количества строк по условию
|
|||
---|---|---|---|
#18+
Guest1, в общем-то все просто - слишком много "рваных" диапазонов. Будет и проще и быстрее сделать так: 1. В отдельном столбце проставляем нумерацию 2. Сортируем столбец, по которому фильтруем(судя по коду - 2) 3. Устанавливаем фильтр 4. Удаляем так, как показано выше. 5. Сортируем обратно по созданному в п.1 столбцу, чтобы вернуть исходный порядок данных 6. Удаляем столбец ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2020, 17:41 |
|
|
start [/forum/topic.php?fid=61&msg=39929653&tid=2171917]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 295ms |
total: | 409ms |
0 / 0 |