Hallo Kristian,
Weder in Xl97, xl2000 noch xl2003 lief der Code.
Also laut Microsoft Knowledge Base ist ein Fehler im
Zusammenhang mit ApplyNames() ab Excel 2000 behoben.
Okay, ich gebe zu, in Xl97 habe ich alles was mir so einfiel ausprobiert, da ging schonmal ne Stunde weg, in Xl2000 beträchtlich weniger und in Xl2003 habe ich an sich nur die Hilfe Hilfesuchend angeschaut, den Beispielcode getestet.
Naja, normales Verhalten, wenn das Wissen wofür dieses Applyteil überhaupt ist und wie man es in Gang kriegt nahe an Null hängenbleibt und der Frust von Versuch zu Versuch steigt 
Es spielte auch keine Rolle ob „Budget“ und „Preis“ vorher definiert waren oder nicht.
Das mag vielleicht auf Excel 97 zutreffen, aber ab 2000 geht
es auf jeden Fall. Es reicht, wenn nur ein einziger Name in
der Arbeitesmappe definiert ist, gleichgültig, ob „Otto“ oder
„Budget“ oder sonstwas. Sowie ein Name definiert ist,
verschwindet die Fehlermeldung, löscht man den letzten Namen,
ist sie wieder da.
OkayII, teste ich mit Xl2000.
Wenn man nur einen einzgen Bezug in einer Formel ersetzen
will, also nur ein einziger Name eine Rolle spielt, kann man
sich das mit dem Array übrigens auch sparen. Beispiel:
Zelle C3 hat den Namen „MeineZelle“ erhalten, nachdem in Zelle
K3 die folgende Formel geschrieben wurde:
=C3 +
1
Dann kann ich das „C3“ in der Formel wie folgt durch
„MeineZelle“ ersetzen lassen:
Range(„K3“).ApplyNames
„MeineZelle“ oder
Cells(3,11).ApplyNames „MeineZelle“
Man kann auch
folgendes schreiben:
Range(„K3“).ApplyNames
„eineZelle“
aber dann passiert gar nichts, weil der Name
nicht existiert.
Ach, so ist das 
PS: Bis vor zwei Minuten kannte ich ApplyNames()
überhaupt noch nicht. Aber ein Blick in die Suchmaschine mit
„G“ …
Wer kennt das schon, ich hatte in „G“ in Groups gesucht, kaum Treffer, nagut, nicht auf „alle Sprachen“ gesucht.
May be, wenn erstmal der Code funktioniert, versthe ich eventuell wofür man das sinnvoll benutzen kann. Ich habe da einige vage, leider unterschiedliche Vermutungen.
Danke für deine Mühen
Gruß
Reinhard