Makro zum Einfügen eines Arbeitsblatts - Excel-Tipps

Inhaltsverzeichnis

"Stuck in NJ" stellte die Frage dieser Woche:

Ich erstelle eine Excel-Arbeitsmappe, die Diagramme mit Verkaufszahlen enthält. Das erste Excel-Arbeitsblatt entspricht dem ersten Verkaufsgebiet im Unternehmen (z. B. FL01). Der Registerkartenname des Arbeitsblatts (sowie Zelle A1) ist die Verkaufsgebietsnummer FL01. Die Daten, die die Diagramme steuern, befinden sich rechts (außerhalb des von mir festgelegten Druckbereichs) und werden aus einer anderen Excel-Arbeitsmappe mit VLOOKUP mit der Vertriebsgebietsnummer FL01 in Zelle A1 als Suchschlüssel ausgefüllt. Ich muss der Arbeitsmappe 76 identische Arbeitsblätter hinzufügen (eines für jedes Verkaufsgebiet), sodass der Registerkartenname und die Zelle A1 jedes Blattes den aufeinanderfolgenden Verkaufsgebietsnummern entsprechen (z. B. FL01, FL02, LK01, LK02). Wie mache ich das in einem automatisierter Weg?

Dies ist mit einem VBA-Makro leicht zu erreichen, aber lassen Sie mich den Tipp dafür manuell behandeln. Sobald Sie ein Blatt mit Formatierungs- und Druckbereichen eingerichtet haben, können Sie das Blatt einfach duplizieren, indem Sie mit der rechten Maustaste auf die Registerkarte für dieses Blatt klicken. Wählen Sie im angezeigten Menü die Option Verschieben oder Kopieren. Wählen Sie im Dialogfeld Verschieben oder Kopieren die Option "(zum Ende verschieben)" aus, aktivieren Sie das Kontrollkästchen "Kopie erstellen" und klicken Sie auf "OK". Eine Kopie Ihres Blattes mit Formatierung wird als neues Arbeitsblatt in Ihre Arbeitsmappe eingefügt. (Um diesen Vorgang zu beschleunigen, halten Sie die Strg-Taste gedrückt, während Sie die Registerkarte Arbeitsblatt nach rechts ziehen.) Normalerweise möchten Sie das Blatt umbenennen. Klicken Sie mit der rechten Maustaste auf die neue Registerkarte, wählen Sie Umbenennen und geben Sie einen aussagekräftigen Namen ein.

Damit das Excel-Makro funktioniert, benötigt es eine Liste von Gebieten. Fügen Sie vor dem Schreiben des Makros ein neues Blatt mit dem Namen Daten in dieses Buch ein. Geben Sie in Zelle A1 das 2. Verkaufsgebiet ein (in Ihrem Beispiel FL02). Geben Sie weiterhin alle Verkaufsgebiete in Spalte A ein. Lassen Sie keine leeren Zeilen.

Fügen Sie ein neues Makro ein und kopieren Sie diesen Code:

Public Sub CopyIt() Sheets("Data").Select ' Determine how many territories are on Data sheet FinalRow = Range("A65000").End(xlUp).Row ' Loop through each territory on the data sheet For x = 1 To FinalRow LastSheet = Sheets.Count Sheets("Data").Select ThisTerr = Range("A" & x).Value ' Make a copy of Fl01 and move to end Sheets("FL01").Copy After:=Sheets(LastSheet) ' rename the sheet and set A1 = to the territory name Sheets(LastSheet + 1).Name = ThisTerr Sheets(ThisTerr).Select Range("A1").Value = ThisTerr Next x End Sub

Das Makro verwendet den Befehl Sheets (). Copy, der dasselbe bewirkt wie das manuelle Klicken auf Verschieben oder Kopieren. Bevor ich jede Kopie mache, finde ich die Anzahl der Blätter mithilfe der Sheets.Count-Eigenschaft heraus. Ich weiß, wenn es 56 Blätter gibt und ich ein neues Blatt einfüge, wird es als Blätter (57) bezeichnet. Ich finde es etwas unvorhersehbar, zu erraten, wie Excel das neue Blatt benennt, daher verwende ich numerische Indexnummern, um das Blatt zu identifizieren. Sobald ich das neue Blatt mit "Sheets (LastSheet + 1) .Name = ThisTerr" umbenannt habe, kann ich unter Verwendung seines Namens zu meiner bevorzugten Methode zurückkehren, auf das Blatt zu verweisen.

Beachten Sie, dass die Liste der Gebiete FL01 nicht in der Liste enthalten sollte. Der Versuch, eine Kopie einer FL01-Kopie mit demselben Namen umzubenennen, führt zu einem Fehler im Makro.

Interessante Beiträge...