Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

15 Сентябрь 2019, 19:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Здесь можно поблагодарить участников форума Улыбка
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: « 1 2   Вниз
  Печать  
Автор Тема: Автоматическая фильтрация в документе.  (Прочитано 3297 раз)
0 Пользователей и 1 Гость смотрят эту тему.
economist
Форумчанин
***
Offline Offline

Сообщений: 984


« Ответ #44957: 31 Январь 2018, 12:18 »

Если "в лоб" сравнивать одинаковый код SB в OpenOffice|LibreOffice Calc и VBA в Excel - VBA в Excel выполняется быстрее в 2 раза.
Если "в лоб" сравнивать код SB в OpenOffice|LibreOffice Calc и VBA в LibreOffice Calc  - VBA в Calc медленнее на 40% (это заметно)

Путей ускорения макроса от Bigor несколько:

1) переписать цикл с прямого (step +1) на обратный (-1). Это связано с автоподбором высоты строки и разбивкой по страницам - при движении снизу вверх их меньше.  

2) использовать диапазоны Ranges или коллекции, например ячейки с комментариями.

Второе поясню примером. Скажем, надо удалить много конкретных строк (7, 12, 14, 2056, 4565 итд)
- Если удалять в этом же порядке - долго.
- Если удалять снизу вверх - быстрее в 4 раза.
- Если удалять коллекцией (поставив комментарии циклом по диапазону) - быстрее в 8 раз. Для "скрытия" - преимущество будет чуть меньше.

    
« Последнее редактирование: 31 Январь 2018, 12:20 от economist » Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
Страниц: « 1 2   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!