Per VBA eingefügten Namen in der Bearbeitungszeile anzeigen?

27/03/2008 - 13:20 von Dimo Tabken | Report spam
Hallo Leute,

für eine größere Tabelle muß ich sehr viele Zell- und Bereichsnamen
erzeugen, was ja zum Glück per VBA gut funktioniert. Die Namen füge ich mit

activeworkbook.names.add strName, Target

ein, wobei strName den Bereichsnamen enthàlt und Target das Range-Objekt
der aktuellen Zell- oder Bereichsauswahl. Soweit, so gut, diese Namen
werden angelegt, erscheinen aber nicht in dem entsprechenden Dropdown in
der Bearbeitungszeile. Gibts irgendein Verfahren, meine neuen Namen dort
einzubinden, muß evtl. die Liste nur aktualisiert werden?

Ich freue mich auf Eure Antworten!
Gruß
Dimo
 

Lesen sie die antworten

#1 Robert Gelbmann
27/03/2008 - 15:11 | Warnen spam
Hallo Dimo!

"Dimo Tabken" schrieb ...
für eine größere Tabelle muß ich sehr viele Zell- und Bereichsnamen
erzeugen, was ja zum Glück per VBA gut funktioniert. Die Namen füge
ich mit

activeworkbook.names.add strName, Target

ein, wobei strName den Bereichsnamen enthàlt und Target das
Range-Objekt
der aktuellen Zell- oder Bereichsauswahl. Soweit, so gut, diese Namen
werden angelegt, erscheinen aber nicht in dem entsprechenden Dropdown
in
der Bearbeitungszeile. Gibts irgendein Verfahren, meine neuen Namen
dort
einzubinden, muß evtl. die Liste nur aktualisiert werden?



Nein, in der Namenliste werden nur solche definierte Namen angezeigt,
die sich unmittelbar auf Zellbereich beziehen.

Dir ist jedoch beim Definieren der Namen ein Fehler unterlaufen:
Das zweite Argument der erwàhnten Add-Methode wàre RefersTo (Bezieht
sich auf), und das soll jenen Eintrag enthalten, den auch die
entsprechende Textbox im Dialogfeld "Namen definieren" enthàlt; z.B.:

ActiveWorkbook.Names.Add strName, "=Tabelle1!$A$3"

Du hast hingegen - wie du beschrieben hast - versucht, ein Range-Objekt
zu übergeben. Nachdem der RefersTo-Parameter jedoch die oben
beschriebene Angabe erwartet, wurde Dein Range-Objekt automatisch durch
.Value ergànzt, womit die von Dir auf diese Weise definierten Namen
sich jeweils nur auf die (konstanten) Werte und nicht auf die Zellen
selbst beziehen.

Übrigens geht es auch wesentlich leichter:

Target.Name = strName


In der Hoffnung geholfen zu haben, verbleibe ich mit einem leisen


Servus aus Wien,
-Robert Gelbmann-

The world is quiet here.

Ähnliche fragen