Как выбрать текущий ряд? - PullRequest
0 голосов
/ 10 января 2019

Как выбрать текущую строку в calc из Libreoffice? использовать макрос.

Эффект, которого я хочу достичь: Если текущая строка нечетная строка, Измените цвет фона текущей строки на синий.

If currentAddress.Row mod 2 = 1 Then
    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 = "$A$3:$H$3"

    dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

    dim args2(0) as new com.sun.star.beans.PropertyValue
    args2(0).Name = "BackgroundColor"
    args2(0).Value = 17798

    dispatcher.executeDispatch(document, ".uno:BackgroundColor", "", 0, args2())
End If

args1 (0). Значение = "$ A $ 3: $ H $ 3",

"$ A $ 3: $ H $ 3". Как представить это как диапазон с переменными? Спасибо!

Ответы [ 2 ]

0 голосов
/ 20 января 2019

Выберите ячейку и запустите этот код

sub main
    Doc=thiscomponent
    Sheet=Doc.currentcontroller.activesheet
    ActiveCell = Doc.CurrentSelection 
    r = ActiveCell.CellAddress.Row
    if r mod 2 = 1 Then
        Sheet.getRows().getByIndex(r).cellBackColor = RGB(173,216,230) 
    end if   
end sub
0 голосов
/ 20 января 2019

Эффект, которого я хочу добиться: если текущая строка является нечетной, измените цвет фона текущей строки на синий.

Выбрать все, Формат> Условное форматирование> Условие ...> Условие 1, Формула есть,

ISODD(ROW())  

Новый стиль ...> Фон, выберите синий, ОК , ОК .

Альтернатива: Автоформат .

...