从 libreoffice calc basic 中的 "ThisComponent.CurrentSelection" 获取行号和列号

Get Row and Column number from "ThisComponent.CurrentSelection" in libreoffice calc basic

我有这段代码,我可以在其中获取当前选定的单元格并使用它来修改其值:

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() = 1row() = 1,而不管CurrentSelection的值是哪个。在此先感谢您的帮助。

获取单元格地址。

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 等内省工具。