Метод или свойство setValue не найдены при реализации макроса LibreOffice Calc

551
GC 13

Я использую LibreOffice Calc уже более 3 лет, но недавно начал внедрять макросы с использованием Basic. Я ссылался на онлайн-ресурсы, относящиеся к Libreoffice Calc Macro, и я пытаюсь получить абсолютный путь к файлу в определенной ячейке.

Ниже приведен код, который я пытаюсь запустить, который выдает ошибку:

Ошибка:

ОСНОВНАЯ ошибка во время выполнения.

Свойство или метод не найдены: setValue.

Код

Sub selectFile  Dim FileNames() as String Dim Doc as Object Dim oSheet as Object Dim oDestCell as Object  FileNames = fImportLocalFile()  Doc = ThisComponent oSheet = Doc.Sheets(0) oDestCell = oSheet.getCellByPosition(1,1) oSheet.setValue(FileNames, False) Msgbox Join(FileNames, Chr(10))  End Sub 

Я могу пропустить импорт / включение, что приводит к этой ошибке. Невозможно найти соответствующий ресурс в Интернете и, следовательно, разместить мой вопрос здесь.

Спасибо за любые указатели заранее.

0
Я также попробовал следующее: 1) oDestCell.Value = FileNames Error: BASIC ошибка времени выполнения. Переменная объекта не установлена. 2) oDestCell.Text = FileNames Read-Error. Это свойство доступно только для чтения. GC 13 7 лет назад 0
Пожалуйста, рассмотрите возможность использования `StackOverflow` в следующий раз для этого типа вопросов, так как это кажется более подходящим. `SU` = вопросы пользователя,` SO` = "Вопросы и ответы для профессиональных программистов и энтузиастов" ngulam 7 лет назад 0

1 ответ на вопрос

0
ngulam

Для программирования LibreOffice / Apache OpenOffice получите Расширение MRI!
А также документацию (можно найти в SDKустановочных пакетах).

Вот что MRIзаписано для вашей цели:

Sub Snippet Dim oSheets As Variant Dim oObj1 As Variant Dim oCellByPosition As Variant  oSheets = ThisComponent.getSheets() oObj1 = oSheets.getByName("Tabelle1") oCellByPosition = oObj1.getCellByPosition(1, 1) oCellByPosition.setString("whatever")  End Sub  

Пояснение :

sheet.setValue- как указано в сообщении об ошибке: такого свойства нет.
cell.Value- ошибка, как .setValueуказано, а DOUBLEне строка.
cell.Text- ошибка, поскольку объект ячейки Textнуждается в CellTextCursor(который содержит инструкции по форматированию) и a String(содержащий текстовые символы).

Для начала получите Макро-документ Эндрю Питоняка, как бесплатный документ - или купите его книгу.
[Я не связан с автором или слушаниями его книги]

Похожие вопросы