Die setValue-Methode oder -Eigenschaft wurde bei der Implementierung des LibreOffice Calc-Makros nicht gefunden

0

Ich benutze LibreOffice Calc seit mehr als 3 Jahren, habe aber kürzlich begonnen, Makros mit Basic zu implementieren. Ich habe auf Online-Ressourcen verwiesen, die für Libreoffice Calc Macro relevant sind, und ich versuche, einen absoluten Dateipfad in einer bestimmten Zelle zu ermitteln.

Es folgt der Code, den ich ausführen möchte, wodurch ich einen Fehler erleide:

Error:

BASIC Laufzeitfehler.

Eigenschaft oder Methode nicht gefunden: setValue.

Code

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

Möglicherweise fehlen einige Import- / Include-Dateien, die zu diesem Fehler führen. Relevante Ressource online nicht gefunden und daher meine Frage hier posten.

Vielen Dank für Hinweise im Voraus.

GC 13
quelle
Ich habe auch folgendes versucht: 1) oDestCell.Value = FileNames Error: BASIC Laufzeitfehler. Objektvariable nicht gesetzt. 2) oDestCell.Text = Dateinamen-Lesefehler. Diese Eigenschaft ist schreibgeschützt.
GC, 13.
Bitte überlegen Sie, das StackOverflownächste Mal für diese Art von Fragen zu verwenden, da dies angemessener erscheint. SU= Fragen des Benutzers, SO= "Q & A für professionelle und begeisterte Programmierer"
ngulam

Antworten:

0

Für die Programmierung von LibreOffice / Apache OpenOffice erhalten Sie die Extension MRI!
Ebenso die Dokumentation (zu finden in den SDKInstallationspaketen).

Folgendes MRIwurde für Ihr Ziel aufgezeichnet:

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 

Erklärung :

sheet.setValue- Wie in der Fehlermeldung angegeben: Es gibt keine solche Eigenschaft.
cell.Value- Fehler, da .setValuesetzt ein DOUBLE, kein String.
cell.Text- Fehler, da das TextObjekt einer Zelle einen CellTextCursor(der Formatierungsanweisungen enthält) und einen String(der die Textzeichen enthält) benötigt.

Als Erstes erhalten Sie Andrew Pitonyaks Makrodokument , als kostenloses Dokument - oder kaufen Sie sein Buch.
[Ich bin nicht mit dem Autor oder dem Verfahren seines Buches verbunden]

Ngulam
quelle