seit Samstag beiße ich mir die Zähne an diesem Makro, irgendwann mal hier im Forum gefunden, aus:
Code: Alles auswählen
Sub Daten_uebertragen
odoc = thiscomponent
SheetQuelle = odoc.sheets().getByName("kopieren") 'Quell-tabelle
ocursorQuelle = SheetQuelle.createcursor
ocursorQuelle.gotoEndofusedArea(false)
LastrowQuelle = ocursorQuelle.getrangeaddress.endrow
'msgbox LastrowQuelle
oRange1 = SheetQuelle.getCellRangeByPosition(0,1,13,LastRowQuelle)
oData() = oRange1.getDataArray()
rowdiff = LastrowQuelle
Dim oDocSrc1 as Object
dim p(0) as new com.sun.star.beans.PropertyValue
p(0).Name = "Hidden"
p(0).Value = true
oUrlSrc = "file:///E:/OpenOffice/Unbenannt_1.ods" 'Zieldokument
oDocSrc1 = StarDesktop.loadComponentFromURL(oUrlSrc, "_blank", 0, p()) 'Datei im Hintergrund öffnen
' SheetZiel = oDocSrc1.sheets().getByName("neu") 'Fehler : com.sun.star.container.NoSuchElement.Exception
SheetZiel = oDocSrc1.sheets(0) 'Ziel-tabelle
ocursorZiel = SheetZiel.createcursor
ocursorZiel.gotoEndofusedArea(false)
LastrowZiel = ocursorZiel.getrangeaddress.endrow 'Fehler: Falscher Wert: Tabelle A1:N10 Daten, ausgegeben wird '0'
LastrowZiel = LastrowZiel + 1
msgbox LastrowZiel
msgbox rowdiff
'exit sub
oRange2 = SheetZiel.getCellRangeByPosition(0,LastRowZiel,13,LastRowZiel + rowdiff)
oData() = oRange2.setDataArray(oData) 'Fehler: com.sun.star.uno.RuntimeException
oDocSrc1.store 'Zieldatei speichern
oDocSrc1.Close(True)'Zieldatei schliessen
Msgbox "Die Datenübertragung ist abgeschlossen"
End Sub
1. das Tabellenblatt im Ziel-Dokument läßt sich nicht mit Namen ansprechen
2. stellt sich mir die Frage, ob das Ziel-Dokument überhaupt angesprochen wird, denn
3. bekomme ich eine völlig falsche Angabe zur letzten Zeile
4. selbst wenn ich z.B. A1:N3 kopieren will (ohne zuvor die letze Zeile zu ermitteln) gibt es die Fehlermeldung com.sun.star.uno.RuntimeException in der Zeile oData() = oRange2.setDataArray(oData)
Fehlermeldungen und -beschreibungen habe ich teilweise in den Code reingeschrieben
Als die Fehlermeldung zum ersten Mal auftauchte, habe ich festgestellt, daß Quell- und Zielbereich unterschiedliche Größe hatten.
Wenn ich aber von A1:N3 nach A1:N3 kopieren will kann das ja nicht sein.
Ich bin nicht sehr fit in Basic, also bitte bei evtl. Antworten nicht zu viel Wissen voraussetzen.
gruß
sven-my