In Graeme ist eine Arbeitsmappe mit einer großen Anzahl (120+) benannter Bereiche definiert. Er möchte die Bereichsnamen und Definitionen in eine andere Arbeitsmappe kopieren. Nach dem Kopieren ist der Bereich mit dem Namen MyRange1, der sich auf den Bereich C7: H22 in der ursprünglichen Arbeitsmappe bezieht, in der Zielarbeitsmappe vorhanden und bezieht sich auf denselben Bereich wie in der ursprünglichen Arbeitsmappe. Von der ursprünglichen Arbeitsmappe sollte nichts anderes auf das Ziel kopiert werden – nur die Bereichsnamen und Definitionen.

Der einfachste Weg, dies zu tun, ist ein Makro, das jeden Ihrer definierten Namen durchläuft und die Namensdefinition in die Zielarbeitsmappe kopiert. Hier ist ein Beispiel:

Sub CopyNames()

Dim Source As Workbook     Dim Target As Workbook     Dim n As Name

Set Source = ActiveWorkbook     Set Target = Workbooks("Book2.xlsx")



For Each n In Source.Names         Target.Names.Add Name:=n.Name, RefersTo:=n.Value     Next End Sub

Beachten Sie, dass der Großteil der Arbeit im Makro in der For Each-Schleife ausgeführt wird, die alle definierten Namen durchläuft. Es erstellt den Namen in der Zielarbeitsmappe und gibt ihm dieselbe Zuordnung wie in der Quellarbeitsmappe (in der Value-Eigenschaft enthalten).

Es ist zu beachten, dass benannte Bereiche standardmäßig den Namen des Arbeitsblatts in der Value-Eigenschaft enthalten. Wenn die Quellarbeitsmappe einen benannten Bereich hat, der sich beispielsweise auf Sheet4 bezieht, und die Zielarbeitsmappe kein Sheet4 enthält, schlägt das Hinzufügen des Namens fehl. Das Makro generiert keinen Fehler. Der neue benannte Bereich wird einfach nicht erstellt. Die Lösung besteht darin, entweder (a) sicherzustellen, dass die Zielarbeitsmappe dieselben Blattnamen wie die Quellarbeitsmappe enthält, oder (b) das Makro so zu ändern, dass es erkennt, dass Blätter fehlen, und die entsprechenden Maßnahmen zu ergreifen.

Wenn Sie kein Makro erstellen möchten, ist es möglicherweise am einfachsten, Ihre Arbeitsblätter aus der Quellarbeitsmappe in eine Zielarbeitsmappe zu kopieren.

Excel kopiert im Allgemeinen die benannten Bereiche zusammen mit den Arbeitsblättern. Dies wäre nur dann kein zufriedenstellender Ansatz, wenn die Zielarbeitsmappe bereits Arbeitsblätter mit denselben Namen wie die Arbeitsblätter enthält, die Sie möglicherweise kopieren möchten. In diesem Fall ist es am besten, den Makroansatz zu verwenden.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (2469) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: