Calc: Как определить диапазон, занимаемый формулой массива программно?

Автор eeigor, 10 января 2023, 17:56

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

eeigor

Вопрос в наименовании темы.
Для переноса макросом формул в новую запись при её добавлении требуется перенести формулу массива, занимающую несколько ячеек.
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

sokol92

Метод collapseToCurrentArray.
' В случае, если выделенная ячейка содержит формулу массива,
' показывает диапазон, для которого определена формула массива.
Sub Test
  Dim rg, cur
  rg=ThisComponent.CurrentSelection
  If rg.ArrayFormula<>"" Then
    cur=rg.SpreadSheet.createCursorByRange(rg)
    cur.collapseToCurrentArray
    Msgbox "Array formula for " & cur.AbsoluteName
  Else 
    Msgbox "No array formula for active cell"
  End If 
 End Sub
Владимир.

eeigor

Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community