有谁知道如何在OpenOffice Basic Macro中选择所有使用过的单元格?我发现了另一个问题,告诉如何使用pyUno:
我尝试在Basic中编写相同的代码,但最后一行出错:
sheet = ThisComponent.getSheets().getByName(sheetName)
range = sheet.getCellRangeByPosition(0, 0, 0, 0)
range.gotoEndOfUsedArea(True)
错误是Property or method not found
,所以我猜这意味着Basic不存在python方法gotoEndOfUsedArea
。也许它正在包装我可以做的其他一些电话?
我在使用OpenOffice 3.1.1。
答案 0 :(得分:2)
gotoEndOfUsedArea()属于游标对象,而不是范围对象。所以你必须将Basic等效于
sheet = ThisComponent.getSheets().getByName(sheetName)
cursor = sheet.createCursor()
cursor.gotoEndOfUsedArea(True)
address = cursor.RangeAddress
endcol = address.EndColumn
endrow = address.EndRow
range = sheet.getCellRangeByPosition(0, 0, endcol, endrow)
我不熟悉Basic和OpenOffice,因此无法在Basic中提供解决方案,但我希望这个python答案仍然有用。
答案 1 :(得分:0)
它有点复杂。 sheet.getCellRangeByPosition返回一个table :: XCellRange,而gotoEndOfUsedArea在sheet :: XUsedAreaCursor中定义。
但是你应该能够在两者之间施放,因为它们是由同一个类在内部实现的。
答案 2 :(得分:0)
我猜,当您收到该错误时,您从Star Basic IDE运行此代码。这实际上很常见。问题是,当您从IDE运行代码时,“ThisComponent”语句将返回对IDE的引用,而不是电子表格文档。虽然电子表格文档具有“getSheets”方法,但宏开发IDE没有这样的方法。因此,Star Basic无法找到属性或方法的错误。