В компании, где я работаю, у нас есть таблица Excel для отслеживания покупок, сделанных компанией за последний год. Эта таблица содержит около 1500 строк и 30 столбцов.
Несколько дней назад фильтрация в этой таблице стала очень медленной. Фильтрация любого столбца по любому ключевому слову занимает около 5 секунд. Это довольно долго, потому что эта таблица часто фильтруется, и это раздражает. В таблице нет никаких формул или ссылок на другие таблицы или файлы. На изменениях ячеек запущены два макроса, но отключение обоих макросов не делает работу быстрее.
Я также попробовал удалить все строки, кроме одной, но применение фильтра к оставшейся строке все равно занимает 5 секунд.
Есть ли у кого-нибудь идеи, почему это может быть так медленно?
решение1
Обычно это происходит из-за того, что Excel считает, что набор данных намного больше, чем на самом деле. Например, если кто-то перешел к ячейке A1048576 и отформатировал ее, даже если она не выглядит по-другому, теперь Excel думает, что у вас более миллиона строк. Проверьте это, выбрав ячейку A1 и нажав CTRL + End. Это перенесет вас к тому, что Excel считает последней ячейкой на листе. Если проблема в этом, вы можете удалить все строки и/или столбцы после того, где заканчиваются ваши фактические данные, сохранить файл, закрыть его и снова открыть. Это должно помешать Excel видеть все эти пустые ячейки как часть данных. Если это не сработает, выберите ваши данные и вставьте их в новый файл, чтобы исправить это.
решение2
- Выбрать все ( Ctrl+ A)
- Перейдите в раздел Главная -> Редактирование -> Очистить -> Очистить форматы.
- Сохраните файл и повторно примените фильтр.
Готово. У меня это работает каждый раз; пожалуйста, дайте мне знать, работает ли это у вас!
решение3
Возможно, уже слишком поздно, но отключите автоматические вычисления. В VBA я использую эти два: отключаю автоматические вычисления, применяю фильтры, затем снова включаю автоматические вычисления.
Sub automatic_update_on()
Application.Calculation = xlAutomatic
End Sub
Sub automatic_update_off()
Application.Calculation = xlManual
End Sub
решение4
В моем случае это помогло удалить все комментарии. Время фильтрации сократилось с 1,5 минут до менее секунды для таблицы с 100 000+ записей.