OpenOffice Basic Выбрать все - PullRequest
1 голос
/ 23 июня 2011

Кто-нибудь знает, как выбрать все используемые ячейки в макросе OpenOffice Basic? Я нашел этот другой вопрос, рассказывающий, как это сделать с pyUno:

OpenOffice pyuno "выбрать все"

Я пытался просто написать тот же код в Basic, но в последней строке я получаю сообщение об ошибке:

sheet = ThisComponent.getSheets().getByName(sheetName)
range = sheet.getCellRangeByPosition(0, 0, 0, 0)
range.gotoEndOfUsedArea(True)

Ошибка Property or method not found, поэтому я предполагаю, что это означает, что метод python gotoEndOfUsedArea не существует для Basic. Возможно, это еще один вызов, который я могу сделать?

Я нахожусь на OpenOffice 3.1.1.

Ответы [ 3 ]

2 голосов
/ 19 августа 2014

gotoEndOfUsedArea () принадлежит объекту курсора, а не объекту диапазона. Таким образом, вы должны сделать базовый эквивалент

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 все же поможет.

0 голосов
/ 20 июля 2012

Позвольте мне угадать, вы запустили этот код из IDE Star Basic, когда получили эту ошибку.Это на самом деле очень распространено.Проблема заключается в том, что когда вы запускаете свой код из IDE, оператор ThisComponent возвращает ссылку на IDE, а НЕ на документ электронной таблицы.И хотя в документе электронной таблицы есть метод "getSheets", в среде разработки макросов такого метода нет.Следовательно, ошибка в том, что Star Basic не может найти свойство или метод.

0 голосов
/ 07 июля 2011

это немного сложнее. sheet.getCellRangeByPosition возвращает таблицу :: XCellRange, тогда как gotoEndOfUsedArea определено в sheet :: XUsedAreaCursor.

Но вы должны иметь возможность приводить между ними, потому что они внутренне реализованы одним и тем же классом.

...