Скорость открытия файла.

Автор Massaraksh7, 26 мая 2024, 20:33

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

sokol92

В макросе такие случаи можно учесть - не намного усложнит текст.
Владимир.

Massaraksh7

Да, согласен. Попробую.

Massaraksh7

Только, почему-то, макрос не могу записать.Я тут ставил-переставлял разные версии LibreOffice. И было же, а сейчас нет. Хотя говорит, что есть.

sokol92

Меню / Сервис / Параметры / LibreOffice / Расширенные возможности / Включить запись макросов.
Владимир.

Massaraksh7

#34
Спасибо.
Проверил - действительно, 6 колонок по 9000 строк, итого 27000 объединений - меньше секунды.
sub aa0
aaa("A"):aaa("B"):aaa("C"):aaa("D"):aaa("E"):aaa("F")
end sub

sub aaa(c)
rem define variables
dim document   as object
dim dispatcher as object

document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$" & c & "$1"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "EndCell"
args2(0).Value = "$" & c & "$9000"
dispatcher.executeDispatch(document, ".uno:AutoFill", "", 0, args2())

dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = "$" & c & "$1:$" & c & "$9000"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())

end sub

Надо новую функцию написать...

Massaraksh7

Написал, проверил в комплексе, теперь всё выполняется за 9 секунд. Это приемлемо. Большое спасибо всем, кто помогал.