Fehlermeldung Objektvariable nicht belegt

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Fehlermeldung Objektvariable nicht belegt

Re: Fehlermeldung Objektvariable nicht belegt

von Brischniak » Mi, 16.03.2016 16:16

Prima, die simple Fehlerbehandlung genügt mir schon. Danke, Stephan.
Vielen Dank aber auch für deine Antwort, Karolus.

Re: Fehlermeldung Objektvariable nicht belegt

von Karolus » Mi, 16.03.2016 15:24

Hallo


Nimm das hier:

Code: Alles auswählen

Function aendere_namen(event)
cell = event
address = cell.CellAddress
r = address.Row
c = address.Column
If (c = 1) And (r = 0) Then  '# Zelle B1'
	cell.Spreadsheet.Name = cell.String
End if
End Function
und binde das ans Ereignis `Inhalt geändert` des Tabellenblatts ( →→Rechtsklick Tabreiter→Ereignisse … )

Re: Fehlermeldung Objektvariable nicht belegt

von Stephan » Mi, 16.03.2016 15:21

Nur jedesmal, wenn ich das gesamte Dokument schließe und erneut öffne, kommt die Fehlermeldung "Objektvariable nicht belegt."
Das dürfte daran liegen das das ThisComponent-Objekt noch nicht voll verfügbar ist wenn beim Öffnen die Funktion aufgerufen wird.
Wie kann ich das beheben?
Da ich annehme das Änderungen des Blattnamens nur bei geöffneter Datei stattfinden müssen [1], sollte es genügen eine Fehlerbehandlung hinzuzufügen:

Code: Alles auswählen

Function AENDERE_BLATTNAME(x)
On Error Resume Next
dim oSheet as Object
oSheet = ThisComponent.CurrentController.ActiveSheet
oSheet.Name = oSheet.getCellRangeByName("B1").String
End Function
[1]
es bestünde ja auch grundsätzlich die Möglichkeit das XML der Datei direkt zu bearbeiten, dann wäre im Falle des späteren Öffnens der Datei u.U: der Zellwert der Zelle mit der benutzerdefinierten Funktion nicht aktuell wenn dieser nicht direkt beim Öfffnen aktualisiert würde. Diese Möglichkeit dürfte aber in 99% der Praxisfälle akedemischer Natur sein.


Gruß
Stephan

Fehlermeldung Objektvariable nicht belegt

von Brischniak » Mi, 16.03.2016 15:03

Hallo, ich habe folgende Makro-Funktion zum Ändern des Tabellenblattnamens erstellt:

Code: Alles auswählen

Function AENDERE_BLATTNAME(x)
dim oSheet as Object
oSheet = ThisComponent.CurrentController.ActiveSheet
oSheet.Name = oSheet.getCellRangeByName("B1").String
End Function
.

Nun schreibe ich bspw. in Zelle A1 die Formel

Code: Alles auswählen

=AENDERE_BLATTNAME(A2)
,
sodass der Blattname immer dann aktualisiert wird, wenn sich der Wert in A2 ändert.
Das funktioniert auch wunderbar. Nur jedesmal, wenn ich das gesamte Dokument schließe und erneut öffne, kommt die Fehlermeldung "Objektvariable nicht belegt." Wie kann ich das beheben?

Danke

Nach oben