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 in der Zielarbeitsmappe.

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 verwenden Sie am besten den Makroansatz.

_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 (8811) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: