我有以下代码,可以在其中获取当前选定的单元格中的一个,并使用它来修改其值:
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
。预先感谢您的帮助。
答案 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)。