Seite 1 von 1
Exception mit ThisComponent
Verfasst: Di, 30.03.2010 14:20
von ROM
Hallo,
ich habe von Open Office eine Fehlermeldung bekommt, mit der ich überhaupt nichts anfangen kann.
Fehlermeldung:
BASIC-Laufzeitfehler.
Es ist eine Exception aufgetreten
Type: com.sun.star.uno.RuntimeException
Message: .
Ich habe folgendes gemacht:
Ich habe mir in der Bib "meine Makros" einige Funkionen und Makros eingebaut.
Ich habe einen Startmakro, welcher über ein Button in der Standardsymbolleiste ausgeführt werden kann.
Es werden hier einige Prüfung durchlaufen und Daten aus einer Datenbank geholt und eine Vorlagen geöffnet (bzw. ein Dokument aus einer Vorlage). In dieser Vorlage wird eingentlich erst das holen der Daten angestartet.
Die Daten, die ich mir geholt habe, möchte ich in Bookmarks wiedergeben. Dies mache ich folgendermaßen:
Code: Alles auswählen
public sub AdresseEinsetzenTextmarke(Textmarke$)
Dim objTextMarken as Object
Dim objTextMarke as Object
Dim i as Integer
Dim strTextMarken as String
Dim objDatei as Object
Dim objCursor as Object
objDatei = thisComponent
objTextMarken = objDatei.getBookmarks
if objTextMarken.hasByName(Textmarke$) then
objTextmarke = objTextMarken.getByName(Textmarke$)
objCursor = objDatei.Text.createTextCursorByRange(objTextmarke.Anchor) ------> hier kommt die Fehlermeldung
objCursor.String = gefundeneAdresse(Fa1) + gefundeneAdresse(St1)
end if
end sub
Bei der Text.create.... - Funktion bekomme ich die Fehlermeldung. Kann ich hier "thisComponent" nicht verwenden? Muss ich anders auf das geöffnete Dokument referenzieren, wenn ja wie?
Danke schon mal für eure Hilfe.
vg Rom
Re: Exception mit ThisComponent
Verfasst: Di, 30.03.2010 15:12
von turtle47
Hallo ROM,
versuche es mal folgendermassen (entsprechend anpassen):
Code: Alles auswählen
mytextCursor = oDoc.text.createtextcursor()'Textcursor ins Sheet setzen
oBookmarks = oDoc.Bookmarks 'Textmarken ansprechen
oBookmark = oBookmarks.getByName(Name_TM)'Textmarke mit Namen ansprechen
oAnchor = oBookmark.getAnchor 'Anker der Textmarke anwählen
mytextCursor.gotoRange(oAnchor,false)'Cursor auf Textmarke setzen
mytextCursor.string = modText 'Textmarke mit Text füllen
So hat es bei mir auch aus einer Vorlage erzeugten Dokument funktioniert.
Jürgen
Re: Exception mit ThisComponent
Verfasst: Di, 30.03.2010 15:24
von ROM
Hallo Jürgen,
danke für deine Hilfe.
turtle47 hat geschrieben:
Code: Alles auswählen
mytextCursor = oDoc.text.createtextcursor()'Textcursor ins Sheet setzen
Leider bekomme ich an der Stelle mytextCursor ... die Meldung, das das Object nicht belegt ist. Ich habe mytextCursor als Object instanziiert. Ist das überhaupt richtig?
Lg
Martin
Re: Exception mit ThisComponent
Verfasst: Di, 30.03.2010 16:17
von turtle47
Hallo Martin,
ROM hat geschrieben:Ich habe mytextCursor als Object instanziiert. Ist das überhaupt richtig
Das ist schon
OK.
turtle47 hat geschrieben:
versuche es mal folgendermassen (entsprechend anpassen)
Von:
Code: Alles auswählen
mytextCursor = oDoc.text.createtextcursor()'Textcursor ins Sheet setzen
oBookmarks = oDoc.Bookmarks 'Textmarken ansprechen
Nach:
Code: Alles auswählen
mytextCursor = objDatei.text.createtextcursor()'Textcursor ins Sheet setzen
oBookmarks = objDatei.Bookmarks 'Textmarken ansprechen
.......
Denn Du hast die Variable für ThisComponent ja so gesetzt:
Jürgen
Re: Exception mit ThisComponent
Verfasst: Di, 30.03.2010 16:37
von ROM
Hallo Jürgen,
das funktioniert leider auch nicht,
nun bekomme ich an dieser Stelle
Code: Alles auswählen
objCursor.gotoRange(objAnchor,false)'Cursor auf Textmarke setzen
die gleiche Fehlermeldung.
vg
Martin
Re: Exception mit ThisComponent
Verfasst: Di, 30.03.2010 16:42
von turtle47
Hallo,
poste bitte mal den umgeschriebenenTeilcode.
Jürgen
Re: Exception mit ThisComponent
Verfasst: Di, 30.03.2010 16:45
von ROM
turtle47 hat geschrieben:
poste bitte mal den umgeschriebenenTeilcode.
Hi,
das ist die gesamte Routine:
Code: Alles auswählen
public sub AdresseEinsetzenTextmarke(Textmarke$)
Dim strTextMarken as String
Dim objDatei as Object
Dim objCursor as Object
Dim objBookmarks as Object
Dim objBookmark as Object
Dim objAnchor as Object
objDatei = ThisComponent
objCursor = objDatei.text.createtextcursor()'Textcursor ins Sheet setzen
objBookmarks = objDatei.Bookmarks 'Textmarken ansprechen
objBookmark = objBookmarks.getByName(Textmarke$)'Textmarke mit Namen ansprechen
objAnchor = objBookmark.getAnchor 'Anker der Textmarke anwählen
objCursor.gotoRange(objAnchor,false)'Cursor auf Textmarke setzen
objCursor.string = gefundeneAdresse(Fa1) + gefundeneAdresse(St1) 'Textmarke mit Text füllen
end sub
Re: Exception mit ThisComponent
Verfasst: Di, 30.03.2010 16:56
von turtle47
Hi Martin,
ich habe in einem Dokument einem Text eingefügt und dort die Textmarke BM1 gesetzt.
Dann habe ich folgeneden Code drüber laufen lassen:
Code: Alles auswählen
public sub AdresseEinsetzenTextmarke(Textmarke$)
Dim strTextMarken as String
Dim objDatei as Object
Dim objCursor as Object
Dim objBookmarks as Object
Dim objBookmark as Object
Dim objAnchor as Object
objDatei = ThisComponent
objCursor = objDatei.text.createtextcursor()'Textcursor ins Sheet setzen
objBookmarks = objDatei.Bookmarks 'Textmarken ansprechen
objBookmark = objBookmarks.getByName("BM1")'Textmarke mit Namen ansprechen
objAnchor = objBookmark.getAnchor 'Anker der Textmarke anwählen
objCursor.gotoRange(objAnchor,false)'Cursor auf Textmarke setzen
objCursor.string = "BM1 wurde gefunden" 'Textmarke mit Text füllen
end sub
Der Text wird ohne Probleme an der Textmarke eingefügt.
Jetzt weis ich auch keinen Rat mehr.
Jürgen
Re: Exception mit ThisComponent
Verfasst: Di, 30.03.2010 17:06
von ROM
Hi,
danke für deine Mühen.
Kann es daran liegen, dass der Code nicht in der Vorlage hinterlegt ist sondern unter MeineMakros?
Bzw. vielleicht füge ich ja die Textmarke falsch ein?
Ich habe eine Vorlage aus Word. Die habe ich nachgebaut.
Die Textmarken habe ich in einer Tabelle hinterlegt, (wenn ich es denn richtig gemacht habe)
Die Textmarken habe ich folgendermaßen hinzugefügt:
Ich bin in das Tabellenfeld gegangen, dann auf "Einfügen" -> "Textmarke" -> Namen der Textmarke eingefügt und auf OK geklickt.
lg Martin
Re: Exception mit ThisComponent
Verfasst: Di, 30.03.2010 17:10
von turtle47
Hallo Martin,
ROM hat geschrieben:Die Textmarken habe ich in einer Tabelle hinterlegt
Oh man, das ist die entscheidende Info.
Textmarken in Tabellen müssen anders angesprochen werden!
Ich hoffe das hilft jetzt.
Jürgen
Re: Exception mit ThisComponent
Verfasst: Di, 30.03.2010 17:24
von ROM
oh, sorry, Asche auf mein Haupt
Danke für dein Mühe. Hast mir echt weiter geholfen.
Vg
Martin