Получить номер строки и столбца из "ThisComponent.CurrentSelection" в libreoffice cal c basic - PullRequest
0 голосов
/ 17 июня 2020

У меня есть этот код, где я могу узнать, какая ячейка является текущей выбранной, и использовать ее для изменения ее значения:

theSelection = ThisComponent.CurrentSelection
theSelection.setString("some value")

Теперь я хочу перейти к следующему столбцу справа, если он был Microsoft excel VBA, я мог бы просто использовать что-то вроде theSelection.Offset(0,1), но это не так. Так что я, конечно, делаю некоторые обходные пути:

nextCell = oActiveSheet.getCellByPosition( ???currentColumn + 1, ???currentRow)
ThisComponent.CurrentController.select( nextCell )

Я просто хочу знать самый простой способ заменить эти ??? на фактические значения theSelection var, чтобы перейти к следующему столбцу, чтобы право.

Я также пробовал это:

nextCell = oActiveSheet.getCellByPosition( column() + 1, row())

Но я не знаю, почему он всегда возвращает column() = 1 и row() = 1 независимо от того, какое значение CurrentSelection . Заранее благодарим за помощь.

1 Ответ

1 голос
/ 17 июня 2020

Получить адрес ячейки.

Sub ChangeAndThenGoToCellToRightOfSelection
    oActiveSheet = ThisComponent.getCurrentController().getActiveSheet()
    oSels = ThisComponent.getCurrentSelection()
    If oSels.supportsService("com.sun.star.sheet.SheetCell") Then
        'A single cell is selected.
        oSels.setString("some value")
        address = oSels.getCellAddress()
        nextCell = oActiveSheet.getCellByPosition(address.Column + 1, address.Row)
        ThisComponent.CurrentController.select(nextCell)
    End If
End Sub

Чтобы увидеть, что может делать объект, используйте инструмент самоанализа, такой как XrayTool или MRI.

...