PrintAreas über mehrere Blätter

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

PrintAreas über mehrere Blätter

Beitrag von turtle47 »

Ein Hallo in die Runde,

das folgende Makro sucht in Tabelle1 die erste Zelle in Spalte A die leer ist, setzt einen Druckbereich und druckt diesen.

Code: Alles auswählen

sub Blaetter_Drucken
myDoc=thiscomponent
	for i = 0 to 2
	 mySheet = myDoc.Sheets(i)
	 myView = myDoc.CurrentController
	 myView.setActiveSheet(mySheet)
        oEndrow = 0
	while mySheet.getcellbyPosition(0,oEndrow).string <> ""
	oEndrow = oEndrow +1
	wend
	if oEndrow = 0 then
	end if
	'msgbox oEndrow
	Dim oRanges(0) As New com.sun.star.table.CellRangeAddress
	oRanges(0).Sheet = ActiveSheet()
	oRanges(0).StartColumn = 0 : oRanges(0).StartRow = 0
	oRanges(0).EndColumn = 4 : oRanges(0).EndRow = oEndrow -1
	ThisComponent.CurrentController.getActiveSheet().setPrintAreas(oRanges())	ThisComponent.Print(Array())
	Next i
End Sub
Das funktioniert soweit. :)

Beim zweiten Tabellenblatt tritt dann in der Zeile

Code: Alles auswählen

ThisComponent.CurrentController.getActiveSheet().setPrintAreas(oRanges())
ein Basic-Laufzeitfehler auf.

Die MsgBox zeigt den richtigen Index der Spalte A der Tabelle2 an.
Also denke ich ist der Zugriff in Ordnung.

Wie kann ich diesen Fehler beheben?

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Beitrag von turtle47 »

Problem gelöst. :D

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Antworten