Tabellenblatt kopieren, neuer Name aus Zelle

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

Moderator: Moderatoren

lieslweppen
Beiträge: 3
Registriert: Fr, 28.02.2020 21:39

Tabellenblatt kopieren, neuer Name aus Zelle

Beitrag von lieslweppen »

Hallo,

ich versuche mit folgender Zeile ein Tabellenblatt zu kopieren.

osheets.copyByName( oActiveSheet.Name, oNewSheetName, ocount )

Dabei soll oNewSheetName den Text der in Zelle E1 steht zugewiesen bekommen.
Es existiert hier ein Beitrag wo dies mit einer Inputbox gelöst ist. Was mir leider nicht hilft.
E1 beinhaltet Text nach dem Muster "2020_KW1_Text" der über VERKETTEN aus mehreren anderen Zellen zusammengesetzt ist und soll dann jeweils beim kopieren dem kopierten Arbeitsblatt gegeben werden.

Wie muss ich das zuweisen? Geht dies überhaupt auf diesem Weg? Muss das NewSheetName als Object oder String behandelt werden?

Vielen Dank.
mikeleb
*******
Beiträge: 1316
Registriert: Fr, 09.12.2011 16:50

Re: Tabellenblatt kopieren, neuer Name aus Zelle

Beitrag von mikeleb »

Hallo,
.copyByName erwartet den neuen Namen als String.
Den erhältst du mit:

Code: Alles auswählen

 sNewSheetName=oActiveSheet.getCellRangeByName("E1").String
und dann eben

Code: Alles auswählen

osheets.copyByName( oActiveSheet.Name, sNewSheetName, ocount )
Gruß,
mikeleb
lieslweppen
Beiträge: 3
Registriert: Fr, 28.02.2020 21:39

Re: Tabellenblatt kopieren, neuer Name aus Zelle

Beitrag von lieslweppen »

Hallo,

erstmal vielen Dank!
ich hab da noch irgendwo einen Fehler und find ihn nicht. Mit wird immer ein Laufzeitfehler mit "Objektvariable nicht belegt" angezeigt.
Darf ich noch um ein wenig Nachhilfe bitten? Vielen Dank.

Code: Alles auswählen

sub copy_sheet

oSheets = ThisComponent.sheets
sNewSheetName=oActiveSheet.getCellRangeByName("E1").String
osheets.copyByName( oActiveSheet.Name, sNewSheetName, ocount )

end sub
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Tabellenblatt kopieren, neuer Name aus Zelle

Beitrag von Stephan »

oActiveSheet ist nicht definiert. So sollte es gehen:

Code: Alles auswählen

sub copy_sheet
oActiveSheet = ThisComponent.CurrentController.ActiveSheet
oSheets = ThisComponent.sheets
sNewSheetName=oActiveSheet.getCellRangeByName("E1").String
osheets.copyByName( oActiveSheet.Name, sNewSheetName, ocount )
end sub
Im Übrigen musst (und sollst) Du solche Dinge nicht raten, sondern die fehlerhafte Zeile ist markiert und Du hast die Fehlermeldung und musst also nur die betroffenen Objectvariablen prüfen.



Gruß
Stephan
lieslweppen
Beiträge: 3
Registriert: Fr, 28.02.2020 21:39

Re: Tabellenblatt kopieren, neuer Name aus Zelle

Beitrag von lieslweppen »

Besten Dank! So funktioniert es.
Richtig, raten sollte man nie. Befinde mich im Lernprozess relativ am Anfang.
Gelobe Besserung, werde sicher trotzdem hin und wieder Fragen haben.
Antworten