Přejít k hlavnímu obsahu

Jak kopírovat řádky z více listů na základě kritérií do nového listu?

Předpokládejme, že máte sešit se třemi listy, které mají stejné formátování jako níže uvedený snímek obrazovky. Nyní chcete zkopírovat všechny řádky z těchto listů, jejichž sloupec C obsahuje text „Dokončeno“, do nového listu. Jak byste mohli tento problém vyřešit rychle a snadno, aniž byste je po jednom ručně kopírovali a vkládali?

Zkopírujte řádky z více listů na základě kritérií do nového listu s kódem VBA


Zkopírujte řádky z více listů na základě kritérií do nového listu s kódem VBA

Následující kód VBA vám pomůže zkopírovat konkrétní řádky ze všech listů v sešitu na základě určité podmínky do nového listu. Udělejte prosím toto:

1. Podržte ALT + F11 klávesy pro otevření Microsoft Visual Basic pro aplikace okno.

2, klikněte Vložit > Modula vložte následující kód do okna modulu.

Kód VBA: Zkopírujte řádky z více listů na základě kritérií do nového listu

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

Poznámka: Ve výše uvedeném kódu:

  • Text "Dokončeno" v tomhle xRStr = "Dokončeno" skript označuje konkrétní podmínku, na kterou chcete kopírovat řádky;
  • C: C v této Nastavit xRg = xWs.Range ("C: C") skript označuje konkrétní sloupec, kde se podmínka nachází.

3. Poté stiskněte tlačítko F5 klíč ke spuštění tohoto kódu a všechny řádky se specifickou podmínkou byly zkopírovány a vloženy do nového listu s názvem Kutools pro Excel v aktuálním sešitu. Viz screenshot:


Více relativních článků o stahování nebo kopírování dat:

  • Zkopírujte data do jiného listu s pokročilým filtrem v aplikaci Excel
  • Normálně můžeme rychle použít funkci Rozšířený filtr k extrakci dat ze surových dat ve stejném listu. Ale někdy, když se pokusíte zkopírovat filtrovaný výsledek do jiného listu, zobrazí se následující varovná zpráva. Jak byste v tomto případě mohli s tímto úkolem pracovat v aplikaci Excel?

  • Super Formula Bar (snadno upravit více řádků textu a vzorce); Rozložení pro čtení (snadno číst a upravovat velké množství buněk); Vložit do filtrovaného rozsahu...
  • Sloučit buňky / řádky / sloupce a uchovávání údajů; Rozdělit obsah buněk; Zkombinujte duplicitní řádky a součet / průměr... Zabraňte duplicitním buňkám; Porovnat rozsahy...
  • Vyberte možnost Duplikovat nebo Jedinečný Řádky; Vyberte prázdné řádky (všechny buňky jsou prázdné); Super hledání a fuzzy hledání v mnoha sešitech; Náhodný výběr ...
  • Přesná kopie Více buněk beze změny odkazu na vzorec; Automaticky vytvářet reference do více listů; Vložte odrážky, Zaškrtávací políčka a další ...
  • Oblíbené a rychlé vkládání vzorců„Rozsahy, grafy a obrázky; Šifrovat buňky s heslem; Vytvořte seznam adresátů a posílat e-maily ...
  • Extrahujte text, Přidat text, Odebrat podle pozice, Odebrat mezeru; Vytváření a tisk mezisoučtů stránkování; Převod mezi obsahem buněk a komentáři...
  • Super filtr (uložit a použít schémata filtrů na jiné listy); Rozšířené řazení podle měsíce / týdne / dne, frekvence a dalších; Speciální filtr tučnou kurzívou ...
  • Kombinujte sešity a pracovní listy; Sloučit tabulky na základě klíčových sloupců; Rozdělte data do více listů; Dávkový převod xls, xlsx a PDF...
  • Seskupování kontingenčních tabulek podle číslo týdne, den v týdnu a další ... Zobrazit odemčené, zamčené buňky různými barvami; Zvýrazněte buňky, které mají vzorec / název...
karta kte 201905
  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
officetab dno
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