Direkt zum Inhalt

Wie kopiere ich Zeilen aus mehreren Arbeitsblättern basierend auf Kriterien in ein neues Blatt?

Angenommen, Sie haben eine Arbeitsmappe mit drei Arbeitsblättern, die dieselbe Formatierung wie im folgenden Screenshot haben. Jetzt möchten Sie alle Zeilen aus diesen Arbeitsblättern, in denen Spalte C den Text „Abgeschlossen“ enthält, in ein neues Arbeitsblatt kopieren. Wie können Sie dieses Problem schnell und einfach lösen, ohne sie einzeln manuell zu kopieren und einzufügen?

Kopieren Sie Zeilen aus mehreren Arbeitsblättern basierend auf Kriterien in ein neues Blatt mit VBA-Code


Kopieren Sie Zeilen aus mehreren Arbeitsblättern basierend auf Kriterien in ein neues Blatt mit VBA-Code

Der folgende VBA-Code kann Ihnen helfen, bestimmte Zeilen aus allen Arbeitsblättern in der Arbeitsmappe basierend auf einer bestimmten Bedingung in ein neues Arbeitsblatt zu kopieren. Bitte machen Sie Folgendes:

1. Halten Sie die Taste gedrückt ALT + F11 Schlüssel zum Öffnen der Microsoft Visual Basic für Applikationen Fenster.

2. Klicken Sie Insert > Modulund fügen Sie den folgenden Code in das Modulfenster ein.

VBA-Code: Kopieren Sie Zeilen aus mehreren Blättern basierend auf Kriterien in ein neues Blatt

Public Sub CopyRows_ValuesAndNumberFormats()
Dim xWs As Worksheet
Dim xCWs As Worksheet
Dim xRg As Range
Dim xStrName As String
Dim xRStr As String
Dim xRRg As Range
Dim xC As Integer
On Error Resume Next
Application.DisplayAlerts = False
xStr = "Kutools for Excel"
xRStr = "Completed"
Set xCWs = ActiveWorkbook.Worksheets.Item(xStr)
If Not xCWs Is Nothing Then
    xCWs.Delete
End If
Set xCWs = ActiveWorkbook.Worksheets.Add
xCWs.Name = xStr
xC = 1
For Each xWs In ActiveWorkbook.Worksheets
    If xWs.Name <> xStr Then
        Set xRg = xWs.Range("C:C")
        Set xRg = Intersect(xRg, xWs.UsedRange)
        For Each xRRg In xRg
            If xRRg.Value = xRStr Then
               xRRg.EntireRow.Copy
               xCWs.Cells(xC, 1).PasteSpecial xlPasteValuesAndNumberFormats
               xC = xC + 1
            End If
        Next xRRg
    End If
Next xWs
Application.DisplayAlerts = True
End Sub

Note: Im obigen Code:

  • Der Text "Abgeschlossene Verkäufe" in diesem xRStr = "Abgeschlossen" Das Skript gibt die spezifische Bedingung an, auf der Sie Zeilen basierend auf kopieren möchten.
  • C: C. in diesem Setze xRg = xWs.Range ("C: C") Das Skript gibt die spezifische Spalte an, in der sich die Bedingung befindet.

3. Dann drücken F5 Der Schlüssel zum Ausführen dieses Codes und alle Zeilen mit der spezifischen Bedingung wurden kopiert und in ein neues Arbeitsblatt mit dem Namen Kutools for Excel in der aktuellen Arbeitsmappe eingefügt. Siehe Screenshot:


Weitere relative Artikel zum Ziehen oder Kopieren von Daten:

  • Kopieren von Daten in ein anderes Arbeitsblatt mit erweitertem Filter in Excel
  • Normalerweise können wir die erweiterte Filterfunktion schnell anwenden, um Daten aus den Rohdaten im selben Arbeitsblatt zu extrahieren. Wenn Sie jedoch versuchen, das gefilterte Ergebnis in ein anderes Arbeitsblatt zu kopieren, wird manchmal die folgende Warnmeldung angezeigt. Wie können Sie in diesem Fall mit dieser Aufgabe in Excel umgehen?
  • Zeilen kopieren, wenn die Spalte bestimmten Text / Wert in Excel enthält
  • Angenommen, Sie möchten Zellen herausfinden, die bestimmten Text oder Wert in einer Spalte enthalten, und dann die gesamte Zeile kopieren, in der sich die gefundene Zelle befindet. Wie können Sie damit umgehen? Hier werde ich einige Methoden vorstellen, um herauszufinden, ob die Spalte bestimmten Text oder Wert enthält, und dann die gesamte Zeile in Excel kopieren.

  • Super Formelriegel (leicht mehrere Textzeilen und Formeln bearbeiten); Layout lesen (leichtes Lesen und Bearbeiten einer großen Anzahl von Zellen); In gefilterten Bereich einfügen...
  • Zellen / Zeilen / Spalten zusammenführen und Speichern von Daten; Inhalt geteilter Zellen; Kombinieren Sie doppelte Zeilen und Summe / Durchschnitt... doppelte Zellen verhindern; Bereiche vergleichen...
  • Wählen Sie Duplizieren oder Eindeutig Reihen; Wählen Sie Leere Zeilen (alle Zellen sind leer); Super Find und Fuzzy Find in vielen Arbeitsmappen; Zufällige Auswahl ...
  • Exakte Kopie Mehrere Zellen ohne Änderung der Formelreferenz; Referenzen automatisch erstellen zu mehreren Blättern; Aufzählungszeichen einfügen, Kontrollkästchen und mehr ...
  • Lieblingsformeln und schnell einfügen, Bereiche, Diagramme und Bilder; Zellen verschlüsseln mit Passwort; Mailingliste erstellen und E-Mails senden ...
  • Text extrahieren, Text hinzufügen, Nach Position entfernen, Leerzeichen entfernen;; Paging-Zwischensummen erstellen und drucken; Inhalt und Kommentare zwischen Zellen konvertieren...
  • Superfilter (Speichern und Anwenden von Filterschemata auf andere Blätter); Erweiterte Sortierung nach Monat / Woche / Tag, Häufigkeit und mehr; Spezialfilter fett, kursiv ...
  • Kombinieren Sie Arbeitsmappen und Arbeitsblätter;; Tabellen basierend auf Schlüsselspalten zusammenführen; Daten in mehrere Blätter aufteilen; Batch-Konvertierung von xls, xlsx und PDF...
  • Pivot-Tabellengruppierung nach Wochennummer, Wochentag und mehr ... Entsperrte, gesperrte Zellen anzeigen durch verschiedene Farben; Markieren Sie Zellen mit Formel / Name...
kte tab 201905
  • 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!
officetab unten
Comments (2)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hi,

thank you very much for the code. I have a question: the code runs smoothly on some of my sheets, but looks like enters an infinite loop in some other ones which makes excel crash. What could the reason be?
This comment was minimized by the moderator on the site
Hello there, thank you so much for the code above, it solved me a problem with a complex file; a solution I have been looking for a while now. Thank you..I have one question. How do I change the code so that it copies the rows but only from colum A to colum Q, so not Entire.Row?Thank you in advance and great work!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations