Hallo,
versuche folgenden Code aus Excel in Libreoffice umzuschreiben. Bekomme Fehlermeldung:
Error 35: Prozedur Sub oder Function nicht definiert. In line: 13
Das Schräge ist, dass es unter Linux funktioniert, sobald ich im Quellcode auch nur irgend ein Zeichen in einem Kommentar verändere. Unter Windows scheint es auch zu funktionieren.
Es geht um .cells() und die With Sheets() Formulierung, die wohl in LO nicht richtig funktionieren.
Habe auch schon mit ThisComponent.CurrentController.ActiveSheet rumprobiert um die Tabelle und die Zelle zu adressieren, bekomme das aber nicht hin. Das Programm soll den Inhalt der ersten Zelle in eine utf-8 Textdatei im gleichen Ordner schreiben.
Vielen Dank
Sub Test()
Dim myTextFile As Object, mySf As Object, myFileStream As Object
Dim s As String
On Error Goto ErrorHandler
mySf = createUnoService("com.sun.star.ucb.SimpleFileAccess")
myTextFile = createUnoService("com.sun.star.io.TextOutputStream")
myFileStream = mySf.openFileWrite(CurrentFolder() & "Test.csv")
myTextFile.OutputStream = myFileStream
myTextFile.Encoding = "UTF-8"
With Sheets("contacts")
s = .Cells(1, 1)
myTextFile.writeString(s & chr(13) & chr(10))
End With
MsgBox "exported to Test.csv in same folder"
myFileStream.closeOutput : myTextFile.closeOutput
Exit Sub
ErrorHandler:
MsgBox "Error " & Err & ": " & Error$ & chr(13) & "In line: " & Erl
myFileStream.closeOutput : myTextFile.closeOutput
End Sub
Sub CurrentFolder() As String
REM Funktioniert unter Windows und Linux
dim sUrl As String
dim sParts As Variant
sUrl = ThisComponent.getURL()
sParts = Split(sUrl, "/")
ReDim Preserve sParts(0 to UBound(sParts) - 1)
CurrentFolder = Join(sParts, "/") & "/"
'MsgBox(CurrentFolder)
End Sub
Zellen referenzieren mit .Cells()
Moderator: Moderatoren
Zellen referenzieren mit .Cells()
- Dateianhänge
-
- Test.ods
- (20.84 KiB) 70-mal heruntergeladen
Re: Zellen referenzieren mit .Cells()
Hallo,
bisher koonte ich 4 Probleme feststellen:
und hier muss die Referenzierung der gewünschten Zelle so lauten:
Nutze zur Starbasic-Code-Inspektion dieses Tool:
XRay-Tool
Es handelt sich hierbei um ein Writer-Dokument mit Installations-Makros und es ist gleichzeitig die Doku zum Tool.
weitere Info's und Doku's:
https://wiki.openoffice.org/wiki/DE/Mak ... c_Tutorial
Dannenhöfer
Ein weiteres Problem betrifft SimpleFileAccess.
Lese dazu in diesem Buch auf Seite 187:
http://www.uni-due.de/~abi070/count.php ... eutsch.pdf
AOO API → SimpleFileAccess
LO API → SimpleFileAccess
bisher koonte ich 4 Probleme feststellen:
- Es fehlen die Referenzierung auf das aktuelle Dokument und
- die explizite Referenzierung der Tabelle
- die explizite Referenzierung der Zelle
- SimpleFileAccess (siehe weiter unten)
Code: Alles auswählen
Dim oDoc as Object, oSheet as Object
oDoc=ThisComponent ' 1)
oSheet=oDoc.getSheets().getByName("contacts") ' 2)
Code: Alles auswählen
With oSheet("contacts")
s = .getCellByPosition(1, 1).String ' .String oder .Value ! In Deinem Fall .String ' 3)
myTextFile.writeString(s & chr(13) & chr(10))
End With
XRay-Tool
Es handelt sich hierbei um ein Writer-Dokument mit Installations-Makros und es ist gleichzeitig die Doku zum Tool.
weitere Info's und Doku's:
https://wiki.openoffice.org/wiki/DE/Mak ... c_Tutorial
Dannenhöfer
Ein weiteres Problem betrifft SimpleFileAccess.
Lese dazu in diesem Buch auf Seite 187:
http://www.uni-due.de/~abi070/count.php ... eutsch.pdf
AOO API → SimpleFileAccess
LO API → SimpleFileAccess
Gruß
Craig
_____________________________________________________
WIN 10 Pro 64-Bit • LO 7.1.5.2 (x64) • AOO 4.1.8
Craig
_____________________________________________________
WIN 10 Pro 64-Bit • LO 7.1.5.2 (x64) • AOO 4.1.8
Re: Zellen referenzieren mit .Cells()
Vielen Dank craig, wieder what learned...
Re: Zellen referenzieren mit .Cells()
Hallo
Ich sehe das du eigentlich nur Adress-daten aus …csv nach …vcf wandeln möchtest, an der Stelle könntest du dann python benutzen, und das mit Hilfe von csv2vcf erledigen.
https://github.com/Moduland/csv2vcf
Ich sehe das du eigentlich nur Adress-daten aus …csv nach …vcf wandeln möchtest, an der Stelle könntest du dann python benutzen, und das mit Hilfe von csv2vcf erledigen.
https://github.com/Moduland/csv2vcf
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Zellen referenzieren mit .Cells()
Das Problem mit den vcards ist ein grösseres. Dieses Format ist sowas von inkompatibel zu relationalen Datenbanken. Hab es jetzt hinbekommen, dass die wichtigsten Felder aus einer Base-Abfrage in vcard gewandelt werden können, aber auch nur über den calc-Umweg. Ein csv-Import ins Handy funktioniert auch nur über google und die ändern dauernd etwas am Format.
Das Ziel ist ein vom Internet unabhängiger Abgleich mit dem Handy über Radicale oder Baikal. Keine Daten mehr bei google & co.
Das Ziel ist ein vom Internet unabhängiger Abgleich mit dem Handy über Radicale oder Baikal. Keine Daten mehr bei google & co.