So wählen Sie alle Namen in Excel mit VBA aus

Ich arbeite mit einer großen Excel-file, in der ich ungefähr 2000 Namen für Zellen definiert habe. Zusätzlich enthält das Excel Formeln, diese Formeln sind bereits mit Bezug auf Zellen ( A23-B24 ) eingetragen. Ich möchte die Zellenreferenzen durch die definierten Namen ändern (anstelle von A23-B24 mit VARIABLE_100-VARIABLE_120 ).

Ich weiß, dass dies möglich ist, indem Sie "Namen übernehmen" auswählen und dann die definierten Namen aus der list auswählen. Da ich ungefähr 2000 definierte Namen habe, möchte ich alle Namen auf einmal aus dem Menü auswählen, aber ich finde keine Option, also muss ich eine nach der anderen auswählen. Ich habe gesucht, ob es eine Option zum Aktivieren der Mehrfachauswahl im Menü gab, aber ich habe eine solche Option nicht gefunden. Eine Arbeit für mich wäre, ein Makro zu erstellen, das für den ausgewählten Bereich von Formeln die ausgewählten Namen anwendet. Etwas wie das:

 Sub Macro1() ' Macro1 Macro Selection.ApplyNames Names:=Array ("ATL_BV_XP", "ATL_BV_XP..EUN", "ATL_PK_XP", _ "ATL_PK_XP..EUN", "CHN_PK_IM", "CHN_PK_IM..EUN", "CHN_PK_IM..SHREUN", _ "E15_AG_AH", "E15_AG_EPA", "E15_AG_SFP", "E15_AG_SFP..CF" _ , "E15_APF_FE"), IgnoreRelativeAbsolute:=True, UseRowColumnNames:=True, _ OmitColumn:=True, OmitRow:=True, Order:=1, AppendLast:=False End Sub 

Mein Problem ist, dass, weil ich eine große Anzahl von definierten Namen habe (schon zweimal wie um 2000 geschrieben), die Auflistung aller Namen im Makrocode wirklich komplex wird. Ich dachte, dass es wahrscheinlich ein Workaround wäre, eine list mit allen definierten Namen innerhalb des Codes zu erstellen. Hat jemand eine Idee, wie man das macht? Ich schaue mich um und einige Codes schlagen eine loop vor, während andere sagen, dass es möglich ist, eine list zu extrahieren. Trotzdem habe ich keinen path gefunden, es zu tun.

Solutions Collecting From Web of "So wählen Sie alle Namen in Excel mit VBA aus"

Die Dokumentation auf msdn.microsoft.com sagt

Namen: Ein Array der anzuwendenden Namen. Wenn dieses Argument weggelassen wird, werden alle Namen auf dem Blatt auf den Bereich angewendet .

siehe https://msdn.microsoft.com/en-us/library/office/ff196578(v=office.15).aspx

Versuchen Sie folgendes:

 Selection.ApplyNames _ IgnoreRelativeAbsolute:=True, UseRowColumnNames:=True, _ OmitColumn:=True, OmitRow:=True, Order:=1, AppendLast:=False 

Dies sollte abhängig vom Scope der Defined Names und deren Sichtbarkeit funktionieren. Probieren Sie das aus und lassen Sie uns die Ergebnisse wissen.

Möglicherweise steht es Ihnen bereits zur Verfügung. Nehmen wir an, wir haben die Namen Kosten , Gewinn , Steuern definiert

Wenn Sie eine Formel eingeben, lassen Sie die Registerkarte "Formel" geöffnet, und Sie können diese Namen immer nach unten ziehen:

Bildbeschreibung hier eingeben

Ein Makro wäre nett, aber ich weiß nicht, wie man mitten in der Bearbeitung ein Makro aufruft.