Ich bekomme bei der Variable oDialog bei der Sub Textmarken immer die Fehlermeldung "Objektvariable nicht belegt." lt. Foren soll es heissen, dass die Var nicht deklariert ist. Bei der ersten Sub EingabeMaske wird der Dialog aber problemlos über oDialog geöffnet!
Fülle ich die Variable einfach mit "Test" und setze die fehlerverursachenden Zeile als Kommentar passiert über den Dialog-Button, welcher die Sub aufrufen soll nichts. Führe ich die Sub Textmarken über den Writer manuell aus wird der Bookmark problemlos ersetzt.
Global Adresse(9)
Global Absender(4)
Global Betreff(1)
Global oDialog As Object
Sub EingabeMaske
DialogLibraries.LoadLibrary("Standard")
oDialog = CreateUNODialog(DialogLibraries.Standard.Adresse)
oDialog.Execute()
End Sub
Sub Textmarken
'Dim txtBetreff1
Dim oDoc As Object
Dim oBookmark As Object
Dim oCursor As Object
'DialogLibraries.LoadLibrary("Standard")
'oDialog = CreateUNODialog(DialogLibraries.Standard.Adresse)
Betreff(0) = oDialog.GetControl("txtBetreff1").Text ' Meldung: Objektvariable nicht belegt.
'Betreff(0) = "Test"
'oDialog.Dispose()
'oDialog.Close()
oDialog.EndExecute()
'Doc = StarDesktop.CurrentComponent
oDoc = ThisComponent
oBookmark = oDoc.Bookmarks.GetByName("Betreff1")
oCursor = oDoc.Text.CreateTextCursorByRange(Bookmark.Anchor)
oCursor.String = Betreff(0)
End Sub
Ist es möglich das Dein Objekt im Dialog nicht "txtBetreff1" heißt?
An der Stelle kommt die Meldung nämlich dann wenn man versucht mit GetControl auf ein nicht vorhandens Kontrollfeld zuzugreifen.
Bei GetControl muß man auch auf Groß- und Kleinschreibung achten.
Eigentlich istalles gesagt, aber ich hatte schon offline vorgeschrieben:
Variable oDialog bei der Sub Textmarken immer die Fehlermeldung "Objektvariable nicht belegt."
Überprüfe das "txtBetreff1" tatsächlich so heißt und sich nicht ein Leerzeichen eingeschlichen hat, auch die exakte Groß-/Kleinschreibung ist relevant. Kopiere zur Not den genauen Namen aus dem Eigenschaftendialog des Textfelds in den Code. Ich sehe nur sonst keinen Fehler und vielleicht heißt es ja "txtBetreffl" ...
Fülle ich die Variable einfach mit "Test" und setze die fehlerverursachenden Zeile als Kommentar passiert über den Dialog-Button, welcher die Sub aufrufen soll nichts. Führe ich die Sub Textmarken über den Writer manuell aus wird der Bookmark problemlos ersetzt.
Offen gesagt kann das nicht zutreffen, denn das hier funktioniert doch nicht: