Code: Alles auswählen
Sub RmvListener
CellRng.removeModifyListener(oListener)
End Sub
Gruß
Stephan
Moderator: Moderatoren
Code: Alles auswählen
Sub RmvListener
CellRng.removeModifyListener(oListener)
End Sub
Nein. Höchstens kannst du sie dem Schließen-Event zuordnen, das Makro selbst versteht sich hier jedoch nicht als Event.Diese Routine kann ich als Event einfügen beim Schließen des Dokuments.
Naja, dann wird halt eine Objektvariable nicht belegt sein weil LO nicht mit der DEklaration zurechtkommt.Wenn ich Sie aber ausführen möchte bekomme ich folgenden Fehler:
"BASIC Laufzeitfehler. Objektvariable nicht belegt".
Code: Alles auswählen
Private oListener as Object
Private CellRng as Object
Code: Alles auswählen
Global oListener as Object
Global CellRng as Object
Code: Alles auswählen
Public oListener as Object
Public CellRng as Object
Nein.Es muss also irgendwie anders gehen.
Wo dran mag das wohl liegen?beide deiner Vorschläge ändern nichts:
Weder Stephan, noch ich, haben Glaskugeln mit Magischen fähigkeiten. Also ist nichts mit Hilfe.In Sub RmvListener ist CellRng nicht bekannt. Wie kann ich da weitermachen?
Ah ja!Mein Makro sieht ähnlich aus wie im Link.
Was meinst Du denn ganz genau?Diese Routine kann ich als Event einfügen beim Schließen des Dokuments.
das ist mir vollens unverständlich da Du selbst ja den Code gepostet hast (http://user.services.openoffice.org/en/ ... 45&t=30071) der CellRng ein Object zuweist:In Sub RmvListener ist CellRng nicht bekannt.
Code: Alles auswählen
CellRng = Sheet.getCellrangeByName("A1:A10")
Das waa man üblicherweise tut - die genaue Schreibweise von CellRng überprüfen um sicherzustellen das diese in:Wie kann ich da weitermachen? Was für Debugging-Möglichkeiten gibt es da?
Code: Alles auswählen
CellRng = Sheet.getCellrangeByName("A1:A10")
Code: Alles auswählen
CellRng.removeModifyListener(oListener)
Code: Alles auswählen
Sub RmvListener
on Error resume next
CellRng.removeModifyListener(oListener)
End Sub
Sub CalledRoutine
Doc = ThisComponent
Sheet = Doc.Sheets.getByIndex(0)
Cell = Sheet.getCellByPosition(2,1)
CurrentVal = Cell.Value
Cell.Value = CurrentVal + Sheet.getCellByPosition(0,1).value
RmvListener 'ansonten würde die Zeile unten eine Endlosrekursion aus lösen
Sheet.getCellByPosition(0,1).string = ""
End Sub
Mmmh ... ich kann nichts dergleichen feststellen.Soweit ich weiss***, wird 'olistener'
a. mit der Methode .removeModifyListener nicht völlig entfernt, sondern man kann damit nur verhindern, in eine Endlosrekursion zu laufen, falls das per Listener aufgerufe Makro seinerseits Änderungen in 'CellRng' durchführt.
Code: Alles auswählen
Global oListener as Object
Global CellRng as Object