Hallo
Ich möchte ein Sheet erzeugen und die zuvor ausgelesen Daten in diesen Sheets eintragen. Es scheitert schon beim erzeugen eines Sheets.
oNewSheet = Doc.createInstance("com.sun.star.sheet.Spreadsheet")
Doc = StarDesktop.CurrentComponent
Doc.Sheets.insertByName("New Sheet", oNewSheet)
ist mein Code zum erzeugen eines neuen Sheets. Es kommt die Fehlermeldung das die Variable oNewSheet nicht belegt sei.
Ich hoffe mir kann da einer weiterhelfen.
MfG
Klaus
Anfängerfrage
Moderator: Moderatoren
-
- Beiträge: 7
- Registriert: Mi, 18.02.2004 21:15
- Wohnort: Berlin
- Kontaktdaten:
Wenn 'option explicit' gesetzt ist brauchst du voran ein
Eine weiter Fallgrube ist, dass du ThisComponent aufrufst, was völlig korrekt ist. Beim entwickeln musst du aber beim aufrufen daran denken, was den gerade ThisComponent ist. Um sicher zu sein, dass auch das Fenster mit dem Calc-Dokument momentan auch wirklich gerade ThisComponent ist, rufst du das Makro im Calc-Fenster über Extras - Macros... auf.
Unter der Adresse
http://www.bcwin.ch/ooo/basic/
findest du ein Dokument über Basic und Calc. Da ist eine Menge über Calc, wie ich hoffe verständlich und hinreichend, erklärt und mit Codebeispielen vordemonstriert.
Code: Alles auswählen
Dim oNewSheet as Object
Dim Doc as Object
Unter der Adresse
http://www.bcwin.ch/ooo/basic/
findest du ein Dokument über Basic und Calc. Da ist eine Menge über Calc, wie ich hoffe verständlich und hinreichend, erklärt und mit Codebeispielen vordemonstriert.
Meine Installation: AMD Athlon XP 1600+, 512 MB RAM, SuSE Linux 8.2, OpenOffice 1.1
Kostenlose OOo-CD in der Schweiz: http://www.office-cd.ch/
Kostenlose OOo-CD in der Schweiz: http://www.office-cd.ch/
HAllo Klaus,
in Ergänzung zu den Tipps:
Der Fehler in deinem Code ist einfach die Reihenfolge.
Zitat:
oNewSheet konnte nicht erstellt werden, solange Doc nicht initialisiert wurde. Also, einfach die beiden ersten Zeilen rumdrehen, dann sollte dieser kurze Codeabschnitt auch funktionieren.
Gruss
Thomas
in Ergänzung zu den Tipps:
Der Fehler in deinem Code ist einfach die Reihenfolge.
Zitat:
Code: Alles auswählen
oNewSheet = Doc.createInstance("com.sun.star.sheet.Spreadsheet")
Doc = StarDesktop.CurrentComponent
Doc.Sheets.insertByName("New Sheet", oNewSheet)
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic