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