VBA - Hinzufügen eines Arbeitsblatts zu einer Arbeitsmappe

VBA - Hinzufügen eines Arbeitsblatts zu einer Arbeitsmappe

Einführung

Je nachdem, welches Ergebnis Sie erzielen möchten, können Sie entweder Folgendes verwenden:
  • Kopiermethode => Für eine Kopie eines vorhandenen Blattes
  • Methode hinzufügen => Um Ihrer Arbeitsmappe ein neues leeres Blatt hinzuzufügen.

Sie müssen auch sicherstellen, dass der Name des neuen Blatts konform ist. Das heißt, der Name des Blattes sollte nicht mit einem vorhandenen identisch sein oder verbotene Zeichen enthalten. In beiden Fällen sollten die Überprüfungsmethoden identisch sein.

Kopiermethode

Kopieren Sie ein Blatt. Die Daten und das Format des neuen Blatts sind mit dem Quellblatt identisch.

Syntax

Ausdruck .Copy ( Vorher, Nachher)

Ausdruck kann entweder ein Blatt- oder ein Arbeitsblattobjekt sein.

Die Parameter Vorher und Nachher sind optional. Sie können nur einen dieser beiden Parameter angeben. Sie sind vom Typ Variant und können entweder den Blattort vor oder nach dem Blatt darstellen, das Sie kopieren möchten. Wenn der Parameter nicht angegeben wird, wird das Blatt automatisch in eine neue Arbeitsmappe kopiert.

Was passiert dann?

Wenn Sie ein neues Blatt mit der Copy-Methode erstellen:
  • Das Blatt wird am gewünschten Ort erstellt (vor oder nach einem anderen Blatt in der Arbeitsmappe)
  • Es wird basierend auf dem Namen des Quellblatts umbenannt. Beispiel: Sheet1 => Sheet1 (2)
  • Es ist identisch mit dem kopierten Blatt.
  • Es wird das aktive Blatt. Wenn das Blatt in eine neue Arbeitsmappe kopiert wird, wird es zur aktiven Arbeitsmappe.

Anwendungsbeispiele

Kopieren Sie das "Sheet1" nach "Sheet3"

 Arbeitsblätter ("Sheet1"). Kopieren nach: = Arbeitsblätter ("Sheet3") 

Kopieren Sie das "Sheet4" vor dem "Sheet2":

 Blätter ("Sheet4"). Kopieren vor: = Blätter ("Sheet2") 

Kopieren Sie das Blatt "Zusammenfassung" in eine neue Arbeitsmappe

 Arbeitsblätter ("Wiederholung"). Kopieren 

Kopieren Sie das als 1 indizierte Blatt an der letzten Position der Arbeitsmappe, unabhängig vom Namen des letzten Blatts:

 Sheets (1) .Copy After: = Sheets (Sheets.Count) 

Kopieren Sie das Blatt, das am Anfang der Arbeitsmappe als 10 indiziert ist, unabhängig vom Namen des letzten Blatts:

 Blätter (10). Vorher kopieren: = Blätter (1) 

Sie möchten mehrere Blätter Ihrer aktiven Arbeitsmappe in eine neue Arbeitsmappe kopieren:

 Blätter (Array ("Sheet1", "Sheet3", "Sheet5"). Kopieren 

Die Add-Methode

Erstellt eine neue Tabelle (Grafik oder Makro). Das neue Arbeitsblatt wird zum aktiven Blatt.

Dieses neue Blatt enthält keine Daten oder Formatierungen.

Syntax

Ausdruck .Add ( Before, After, Count, Type )

Ausdruck kann entweder ein Blatt- oder ein Arbeitsblattobjekt sein.

Die Parameter Before, After, Count und Type sind optional.

Entweder und Vorher - Sie können nur einen dieser Parameter angeben. Sie sind vom Typ Variant und können entweder den Blattort vor oder nach dem Blatt darstellen, das Sie kopieren möchten.

Der Count-Parameter ist ebenfalls eine Variante. Es gibt die Anzahl der Blätter an, die Sie hinzufügen möchten.

Der Parameter Type gibt den Typ des Blatts an, das Sie hinzufügen möchten.

  • xlWorkSheet - Fügt ein Arbeitsblatt hinzu
  • xlChart - fügt ein Diagrammblatt hinzu
  • xlExcel4MacroSheet - fügt ein Makroblatt hinzu (Excel4)
  • xlExcel4IntlMacroSheet - Adss ein Makroblatt
  • xlDialogSheet - Fügt ein Dialogblatt hinzu.

Hinweis: Vergessen Sie nicht, Ihre Parameter umzubenennen, da die Syntax sonst den folgenden Fehler zurückgibt:

 ActiveWorkbook.Sheets.Add Before: = Arbeitsblätter (Worksheets.Count),, 1, xlChart 

Anwendungsbeispiele

Fügen Sie ein Blatt nach dem letzten Blatt in die Arbeitsmappe ein:

 Sheets.Add After: = Arbeitsblätter (Worksheets.Count) 

Fügt drei Blätter an der "ersten Position" der aktiven Arbeitsmappe hinzu:

 ActiveWorkbook.Sheets.Add Before: = Arbeitsblätter (1), Count: = 3 

Fügt ein Diagrammblatt in einer Arbeitsmappe mit dem Namen "Wbk18" (Öffnen!) Nach dem Blatt mit dem Namen "Sheet4" hinzu.

 Arbeitsbücher ("Wbk18"). Sheets.Add After: = Arbeitsblätter ("Sheet4"), Type: = xlChart 

Testen Sie das Blatt

Überprüfen Sie, ob das Arbeitsblatt bereits in der Arbeitsmappe vorhanden ist

 'Teste die Funktion Feuil_Exist (strWbk als String, strWsh als String) als Boolescher' Gestionnaire d'erreur On Error Resume Weiter '"Teste" Feuil_Exist = (Arbeitsmappen (strWbk) .Sheets (strWsh) .Name = strWsh) Funktion beenden 

Überprüfen Sie, ob der Dateiname verbotene Zeichen enthält

 Testen Sie den Inhalt eines Autors. Funktion Valid_Name (strName als String, strChr als String) als Boolean Dim i als Byte, Tb_Car () als String, strProhib als String strProhib = "/ \: *?" "|" 'Liste der Autohersteller = Split (StrConv (strProhib, vbUnicode), Chr $ (0))' Auflistung der Autohersteller 'Nota: -1 Auflistung der Autohersteller (0) ) 'En effet, la chaine se terminant par un Chr (0) the convient d'exclure ce dernier caractère For i = LBound (Tb_Car) To UBound (Tb_Car) - 1' Test si la chaîne contient un caractère prohibé If InStr (strName, Tb_Car (i))> 0 Then 'Si oui: Return False Valid_Name = False' ET Beenden der Funktion End If Next i 'Si OK: Return True Valid_Name = True End Function 

Aufruf der Verifizierungsfunktion

Der Code ist für die Methode Copy oder Add gleich.
 Sub Principale () Dim strNewName As String, strCara As String strNewName = "NewSheet" Wenn Valid_Name (strNewName, strCara) = False Dann MsgBox "Le nom:" & strNewName & "est invalide." & vbCrLf & _ "Un nom de feuille ne peut pas contenir le caractère:" & strCara, vbCritical Exit Sub End If If Feuil_Exist (ThisWorkbook.Name, strNewName) = True Then MsgBox "Le nom:" & strNewName & "est invalide. " & vbCrLf & _ "Ce nom de feuille est déjà utilisé dans casseur.", vbCritical Exit Sub End If ThisWorkbook.Sheets.Add 'Ou: ThisWorkbook.Sheets ("Feuil1"). Copy After: = Sheets (Sheets.Count) ActiveSheet.Name = strNewName End Sub 

Einige nützliche Tipps für Office 2013

Office 2013 bietet zwei ergänzende Methoden zu den zuvor beschriebenen:
  • Kopieren Sie eine Reihe von Zellen auf ein Blatt und mehrere Blätter
  • Die Add2-Methode für Auflistungen von Charts-Objekten.

Kopieren Sie einen Zellbereich mit der FillAcrossSheets-Methode

Diese Methode ist nur für Office 2013 verfügbar. Sie möchten einen Zellbereich von "Sheet1" nach "Sheet3", "Sheet5" und "Sheet7" kopieren.

 Sheets = Array ("Sheet3", "Sheet5", "Sheet7") Sheets (Sheets) .FillAcrossSheets Worksheets ("Sheet1"). Range ("A1: C5") 

Die Parameter dieser Methode sind:

  • Bereich: Erforderlich
  • Typ: Optional
  • xlFillWithAll: Kopieren Sie die Inhalte und Formate.
  • xlFillWithContents: Kopieren Sie den Inhalt.
  • xlFillWithFormats: Formate kopieren.

Die Add2-Methode

Diese Methode ist nur für Office 2013 verfügbar. Diese Methode gilt für Auflistungen von Diagrammobjekten und gibt bei Verwendung mit Sheets- und WorkSheets-Objekten einen Laufzeitfehler zurück . Keine weiteren Informationen zu Microsoft.com außer der Syntax:

Ausdruck .Add ( Before, After, Count, NewLayout )

Ausdruck steht für ein Arbeitsblattobjekt

Die Parameter sind identisch mit der Add-Methode. Ersetzen Sie einfach den Type-Parameter durch NewLayout. Wenn NewLayout auf True gesetzt ist, wird die Grafik nach den neuen Regeln eingefügt.

Vorherige Artikel Nächster Artikel

Top-Tipps