[Решено] Отключить диалог перезаписи имеющихся данных

Автор Sirius34, 9 сентября 2024, 14:20

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

Sirius34

Всем доброго времени суток!

При импортировании листа из внешнего файла подтягиваются также формулы и т.п.
Самый простой способ (ещё со времен экселя) - копировать->спец вставка->вставить значения.
В LO в меню специальная вставка это реализовано отдельными пунктами числа, текст, дата/время.
dispatcher.executeDispatch(CCF, ".uno:Copy", "", 0, Array())

ArgsSel2(0).Name = "Flags"
ArgsSel2(0).Value = "SVD"
ArgsSel2(1).Name = "FormulaCommand"
ArgsSel2(1).Value = 0
ArgsSel2(2).Name = "SkipEmptyCells"
ArgsSel2(2).Value = false
ArgsSel2(3).Name = "Transpose"
ArgsSel2(3).Value = false
ArgsSel2(4).Name = "AsLink"
ArgsSel2(4).Value = false
ArgsSel2(5).Name = "MoveMode"
ArgsSel2(5).Value = 4
dispatcher.executeDispatch(CCF, ".uno:InsertContents", "", 0, ArgsSel2())

Проблема в том, что при такой вставке эксель не просит подтверждения о замене имеющихся данных, а LO просит.
Как отключить окно подтверждения на время работы макроса, если это вообще возможно?

Конечно, я могу использовать временный лист для хранения буфера, но очень бы не хотелось такого количества лишних телодвижений...

sokol92

Самый простой способ: getDataArray (исходный диапазон) и затем setDataArray (целевой диапазон).
Владимир.

Sirius34

Цитата: sokol92 от  9 сентября 2024, 15:04Самый простой способ: getDataArray (исходный диапазон) и затем setDataArray (целевой диапазон).
Не совсем то, что хотел изначально, но требуемое действие выполняется.
Спасибо!