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

时间:2020-06-16 23:23:46

标签: libreoffice basic libreoffice-calc

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

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() = 1CurrentSelection。预先感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

获取单元地址。

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)。