从 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() = 1
和row() = 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 等内省工具。
我有这段代码,我可以在其中获取当前选定的单元格并使用它来修改其值:
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
的值是哪个。在此先感谢您的帮助。
获取单元格地址。
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 等内省工具。