Calc. Как получить диапазон печати листа и строки разрывов страниц при печати

Автор LuchS, 18 сентября 2024, 12:51

0 Пользователи и 1 гость просматривают эту тему.

sokol92

Цитата: LuchS от  2 декабря 2024, 13:47А что можно такого же сделать для StarBasic что бы код быстрее работал?
Зависит от специфики задачи.

"Сам по себе" код LO Basic выполняется существенно медленнее, чем эквивалентный код на VBA, поэтому практика оптимизации Calc Basic может отличаться от практики Excel VBA.

Ниже (далеко не полный) список практических рекомендаций на тему отключения "тормозящих" служб в начале работы макроса (и восстановления их в конце).

1. Используем метод LockControllers.
Уменьшает частоту обновления экрана (аналог Application.ScreenUpdating).
По возможности, лучше сделать активным не обновляемый лист, чтобы уменьшить перерисовку экрана.

2. Берем на себя управление строкой статуса через методы интерфейса XStatusIndicator.

3. Убираем Sidebar:

oDoc.CurrentController.Sidebar.SetVisible False
Эта служба может тормозить выполнение макроса (иногда существенно).

4. Отключаем фоновую проверку орфографии:

oDoc.SpellOnline=False
5. Отключаем службу Undo/Redo:

oDoc.IsUndoEnabled=False
Эффект от отключения этой службы есть, но небольшой.

6. Убираем режим автоматического пересчета ячеек (как и в Excel).

oDoc.enableAutomaticCalculation False
Владимир.