Direkt zum Inhalt

Wie erstelle ich neue Blätter für jede Zeile in Excel?

Angenommen, Sie haben eine Ergebnistabelle mit den Namen aller Schüler in Spalte A. Jetzt möchten Sie neue Blätter basierend auf diesen Namen in Spalte A erstellen, und jedes Blatt erstellen enthält die Daten eines einzelnen Schülers. Oder erstellen Sie einfach nur für jede Zeile in der Tabelle ein neues Blatt, ohne die Namen in Spalte A zu berücksichtigen. In diesem Video erhalten Sie Methoden, um dies zu erreichen.

Erstellen Sie neue Blätter für jede Zeile mit VBA-Code
Erstellen Sie mit dem Dienstprogramm "Daten teilen" von Kutools for Excel neue Blätter für jede Zeile


Erstellen Sie neue Blätter für jede Zeile mit VBA-Code

Mit den folgenden Codes können Sie ein neues Blatt basierend auf Spaltenwerten erstellen oder einfach neue Blätter für jede Zeile in Excel erstellen.

1. Drücken Sie Andere + F11 Tasten gleichzeitig zum Öffnen der Microsoft Visual Basic für Applikationen Fenster.

2. In dem Microsoft Visual Basic für Applikationen Klicken Sie im Fenster Insert > Modul. Fügen Sie dann den folgenden Code in das Feld ein Modul Fenster.

VBA-Code: Erstellen Sie ein neues Blatt für jede Zeile basierend auf der Spalte

Sub parse_data()
'Update by Extendoffice 2018/3/2
    Dim xRCount As Long
    Dim xSht As Worksheet
    Dim xNSht As Worksheet
    Dim I As Long
    Dim xTRrow As Integer
    Dim xCol As New Collection
    Dim xTitle As String
    Dim xSUpdate As Boolean
    Set xSht = ActiveSheet
    On Error Resume Next
    xRCount = xSht.Cells(xSht.Rows.Count, 1).End(xlUp).Row
    xTitle = "A1:C1"
    xTRrow = xSht.Range(xTitle).Cells(1).Row
    For I = 2 To xRCount
        Call xCol.Add(xSht.Cells(I, 1).Text, xSht.Cells(I, 1).Text)
    Next
    xSUpdate = Application.ScreenUpdating
    Application.ScreenUpdating = False
    For I = 1 To xCol.Count
        Call xSht.Range(xTitle).AutoFilter(1, CStr(xCol.Item(I)))
        Set xNSht = Nothing
        Set xNSht = Worksheets(CStr(xCol.Item(I)))
        If xNSht Is Nothing Then
            Set xNSht = Worksheets.Add(, Sheets(Sheets.Count))
            xNSht.Name = CStr(xCol.Item(I))
        Else
            xNSht.Move , Sheets(Sheets.Count)
        End If
        xSht.Range("A" & xTRrow & ":A" & xRCount).EntireRow.Copy xNSht.Range("A1")
        xNSht.Columns.AutoFit
    Next
    xSht.AutoFilterMode = False
    xSht.Activate
    Application.ScreenUpdating = xSUpdate
End Sub

Note: A1: C1 ist der Titelbereich Ihrer Tabelle. Sie können es je nach Bedarf ändern.

3. Drücken Sie F5 Wenn Sie den Code zum Ausführen des Codes eingeben, werden nach allen Arbeitsblättern der aktuellen Arbeitsmappe neue Arbeitsblätter erstellt (siehe Abbildung unten):

Wenn Sie direkt neue Blätter für jede Zeile erstellen möchten, ohne den Spaltenwert zu berücksichtigen, können Sie den folgenden Code verwenden.

VBA-Code: Erstellen Sie direkt ein neues Blatt für jede Zeile

Sub RowToSheet()
	Dim xRow As Long
	Dim I As Long
	With ActiveSheet
		xRow = .Range("A" & Rows.Count).End(xlUp).Row
		For I = 1 To xRow
			Worksheets.Add(, Sheets(Sheets.Count)).Name = "Row " & I
			.Rows(I).Copy Sheets("Row " & I).Range("A1")
		Next I
	End With
End Sub

Nach dem Ausführen des Codes wird jede Zeile im aktiven Arbeitsblatt in ein neues Arbeitsblatt eingefügt.

Note: Die Überschriftenzeile wird ebenfalls in ein neues Blatt mit diesem VBA-Code eingefügt.


Erstellen Sie mit dem Dienstprogramm "Daten teilen" von Kutools for Excel neue Blätter für jede Zeile

Tatsächlich ist die obige Methode kompliziert und schwer zu verstehen. In diesem Abschnitt stellen wir Ihnen die vor Daten teilen Nutzen von Kutools for Excel.

Vor der Bewerbung Kutools for Excel, Bitte Laden Sie es zuerst herunter und installieren Sie es.

1. Wählen Sie die Tabelle aus, die Sie zum Erstellen neuer Blätter verwenden möchten, und klicken Sie dann auf Kutoolen Plus> Daten spucken. Siehe Screenshot:

2. In dem Daten in mehrere Arbeitsblätter aufteilen Dialogfeld, bitte gehen Sie wie folgt vor.

A. Zum Erstellen neuer Blätter basierend auf dem Spaltenwert:

1). Bitte wählen Sie die Spezifische Spalte Option und geben Sie in der Dropdown-Liste eine Spalte an, nach der Sie Daten aufteilen möchten.
2). Wenn Sie die Arbeitsblätter mit Spaltenwerten benennen möchten, wählen Sie bitte Werte der Spalte der Regeln Dropdown-Liste;
3). Drücke den OK Taste. Siehe Screenshot:

B. Zum direkten Erstellen neuer Blätter für jede Zeile:

1). Wählen Feste Zeilen Option, Nummer eingeben 1 in die Kiste;
2). Wählen Zeilennummern von dem Regeln Dropdown-Liste;
3). Drücke den OK Taste. Siehe Screenshot:

Es wird eine neue Arbeitsmappe mit allen neuen Blättern erstellt. Siehe Screenshots unten.

Erstellen neuer Blätter für jede Zeile basierend auf dem Spaltenwert:

Erstellen eines neuen Blattes für jede Zeile ohne Berücksichtigung des Spaltenwerts:

  Wenn Sie eine kostenlose Testversion (30 Tage) dieses Dienstprogramms wünschen, Bitte klicken Sie, um es herunterzuladenund wenden Sie dann die Operation gemäß den obigen Schritten an.

Erstellen Sie mit dem Dienstprogramm "Daten teilen" von Kutools for Excel neue Blätter für jede Zeile

Beste Office-Produktivitätstools

🤖 Kutools KI-Assistent: Revolutionieren Sie die Datenanalyse basierend auf: Intelligente Ausführung   |  Code generieren  |  Erstellen Sie benutzerdefinierte Formeln  |  Analysieren Sie Daten und erstellen Sie Diagramme  |  Rufen Sie Kutools-Funktionen auf...
Beliebte Funktionen: Suchen, markieren oder identifizieren Sie Duplikate   |  Leere Zeilen löschen   |  Kombinieren Sie Spalten oder Zellen, ohne Daten zu verlieren   |   Runde ohne Formel ...
Super-Lookup: VLookup mit mehreren Kriterien    VLookup mit mehreren Werten  |   VLookup über mehrere Blätter hinweg   |   Unscharfe Suche ....
Erweiterte Dropdown-Liste: Erstellen Sie schnell eine Dropdown-Liste   |  Abhängige Dropdown-Liste   |  Mehrfachauswahl Dropdown-Liste ....
Spaltenmanager: Fügen Sie eine bestimmte Anzahl von Spalten hinzu  |  Spalten verschieben  |  Schalten Sie den Sichtbarkeitsstatus ausgeblendeter Spalten um  |  Vergleichen Sie Bereiche und Spalten ...
Ausgewählte Funktionen: Rasterfokus   |  Designansicht   |   Große Formelleiste    Arbeitsmappen- und Blattmanager   |  Ressourcen (Autotext)   |  Datumsauswahl   |  Arbeitsblätter kombinieren   |  Zellen verschlüsseln/entschlüsseln    Senden Sie E-Mails nach Liste   |  Superfilter   |   Spezialfilter (Filter fett/kursiv/durchgestrichen...) ...
Top 15 Toolsets12 Text Tools (Text hinzufügen, Zeichen entfernen, ...)   |   50+ Chart Typen (Gantt-Diagramm, ...)   |   40+ Praktisch Formeln (Berechnen Sie das Alter basierend auf dem Geburtstag, ...)   |   19 Einfügen Tools (QR-Code einfügen, Bild aus Pfad einfügen, ...)   |   12 Umwandlung (Conversion) Tools (Zahlen zu Wörtern, Currency Conversion, ...)   |   7 Zusammenführen & Teilen Tools (Erweiterte Zeilen kombinieren, Zellen teilen, ...)   |   ... und mehr

Verbessern Sie Ihre Excel-Kenntnisse mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor. Kutools für Excel bietet über 300 erweiterte Funktionen, um die Produktivität zu steigern und Zeit zu sparen.  Klicken Sie hier, um die Funktion zu erhalten, die Sie am meisten benötigen ...

Beschreibung


Office Tab Bringt die Oberfläche mit Registerkarten in Office und erleichtert Ihnen die Arbeit erheblich

  • Aktivieren Sie das Bearbeiten und Lesen von Registerkarten in Word, Excel und PowerPoint, Publisher, Access, Visio und Project.
  • Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters und nicht in neuen Fenstern.
  • Steigert Ihre Produktivität um 50 % und reduziert jeden Tag Hunderte von Mausklicks für Sie!
Comments (33)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
HI, Thanks for this wonder-full code, Can we get dynamic sheet, means if i update data in respective sheet it will get updated in main sheet.
This comment was minimized by the moderator on the site
Hi vikas chandra,
I can't fix this problem. Sorry about that.
This comment was minimized by the moderator on the site
Hi, I have a problem about title, the title range of my table is A1:AI2, when I changed the code like that it doesn't work.

***Note: A1:C1 is the title range of your table. You can change it based on your needs.***
This comment was minimized by the moderator on the site
Hello, thanks so much for this. I'm looking to modify the macro such that it will create a sheet for each row of a column and within each sheet have a function (average) that I can populate data into and in turn have the outcome linked back into the original sheet. Is this possible? I can try to clarify further if this doesn't make sense or is ambiguous.
This comment was minimized by the moderator on the site
Hi, is there a code which would add only 1 new sheet each time the macro is run, eg 1st time the new sheet would be named on the contents of cell A1, 2nd time the macro was run the new sheet would be named on the contents of A2 etc. thanks in anticipation
This comment was minimized by the moderator on the site
Hello, used this code and worked, but If I want select the more then one rows in header, what will be change in the code ? I have multiple lines in the sheet which I want in every sheet.
This comment was minimized by the moderator on the site
Hello, did you figured out how?
This comment was minimized by the moderator on the site
Hello! I just used this code and it worked! In addition to creating a new sheet for each entry, I want to transpose it to columns and can't figure it out. So for the above example, the output for Nana would look like this - Name NanaScore 86No. 2
This comment was minimized by the moderator on the site
<p> Nana
86
2</p>
This comment was minimized by the moderator on the site
How to reference the use of the code above (credit) ? Is it possible to modify the code ?
This comment was minimized by the moderator on the site
Hi, this is an open communication platform. The code is allowed to reference and modify.
This comment was minimized by the moderator on the site
Nevermind it was hidden trailing spaces. I used the TRIM feature and cleaned it up. Having a row count (line count really so rows -1 prepended to the sheet would be amazing)
This comment was minimized by the moderator on the site
Please can i get help on how to automatically name the sheets using a particular column. This is for the row to sheet VBA. See below

Sub RowToSheet()

Dim xRow As Long

Dim I As Long

With ActiveSheet

xRow = .Range("A" & Rows.Count).End(xlUp).Row

For I = 1 To xRow

Worksheets.Add(, Sheets(Sheets.Count)).Name = "Row " & I

.Rows(I).Copy Sheets("Row " & I).Range("A1")

Next I

End With

End Sub
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations