in einem Writer-Doku habe ich eine Tabelle mit zwei Spalten und zwei Zeilen; in der Zelle 1,0 sind zwei Textmarken nach folgendem Schema:
fax | mail
die von einem anderen Programm mit der Fax-Nummer UND der Mail-Adresse ausgefüllt werden.
Die Zelle werte ich mit folgendem Code, innerhalb eines größeren Makros, aus:
Code: Alles auswählen
oDoc = ThisComponent
Title = oDoc.DocumentInfo.Title
SNr = instr(Title,"Notiz") + instr(Title,"Deckblatt")
if SNr > 0 then exit sub
wait 500
ausT = oDoc.getTextTables().getByName("eMail").getCellByPosition(0,0).string
adrT = oDoc.getTextTables().getByName("eMail").getCellByPosition(1,0).string
msgbox adrT
adrS = instr(adrT,"|")
adrF = left(adrT,adrS-1)
adrM = right(adrT,len(adrT)-adrS)
wait 500
oDoc.getTextTables().getByName("eMail").getCellByPosition(1,0).setString("")
if instr(ausT,"Fax") > 0 then oDoc.getTextTables().getByName("eMail").getCellByPosition(1,0).setString(adrF)
if instr(ausT,"Mail")> 0 then oDoc.getTextTables().getByName("eMail").getCellByPosition(1,0).setString(adrM)
Lasse ich folgenden Code in einem Extra-Modul ganz allein ausführen, tritt der Fehler nicht auf:
Code: Alles auswählen
oDoc = ThisComponent
adrT = oDoc.getTextTables().getByName("eMail").getCellByPosition(1,0).string
msgbox adrT
adrS = instr(adrT,"|")
adrF = left(adrT,adrS-1)
adrM = right(adrT,len(adrT)-adrS)
wait 500
oDoc.getTextTables().getByName("eMail").getCellByPosition(1,0).setString("")
if instr(ausT,"Fax") > 0 then oDoc.getTextTables().getByName("eMail").getCellByPosition(1,0).setString(adrF)
if instr(ausT,"Mail")> 0 then oDoc.getTextTables().getByName("eMail").getCellByPosition(1,0).setString(adrM)
Die Variable >adrT< wird NUR in diesem Teil des gesamten Codes benutzt, auch mit >DIM adrT as string< hab' ich's schon versucht - ohne Erfolg.
Ich bin mit meinem Latein völlig am Ende.
Für ganz pingelige: die >wait 500< sind, aus welchen Gründen erschließt sich mir nicht, nötig, damit der code bei mir korrekt ausgeführt wird.
gruß
sven-my