Ugrás a tartalomra

Hogyan lehet másolni a kritériumok alapján több munkalapról a sorokat egy új lapra?

Szerző: Xiaoyang Utolsó módosítás: 2019-09-10

Tegyük fel, hogy van egy munkafüzete, amely három munkalapot tartalmaz, amelyek formázása megegyezik az alábbi képernyőképen látható ábrával. Most át akarja másolni ezekből a munkalapokból az összes sort, amely C oszlop tartalmazza a „Befejezett” szöveget egy új munkalapba. Hogyan oldhatná meg ezt a problémát gyorsan és egyszerűen anélkül, hogy manuálisan másolná és beillesztené őket?

Másolja a kritériumok alapján több munkalapról a sorokat egy új VBA kóddal ellátott lapra


Másolja a kritériumok alapján több munkalapról a sorokat egy új VBA kóddal ellátott lapra

A következő VBA-kód segíthet abban, hogy egy adott feltétel alapján a munkafüzet összes munkalapjáról adott sorokat másoljon egy új munkalapba. Kérjük, tegye a következőket:

1. Tartsa lenyomva a ALT + F11 billentyűk megnyitásához Microsoft Visual Basic for Applications ablak.

2. Kattints betétlap > Modulok, és illessze be a következő kódot a Modul ablakba.

VBA kód: Sorok másolása több lapról a kritériumok alapján egy új lapba

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

Megjegyzések: A fenti kódban:

  • A szöveg "Befejezett" ebben xRStr = "Befejezve" a szkript azt a konkrét feltételt jelöli, amely alapján sorokat akar másolni;
  • C: C ebben Állítsa be xRg = xWs.Range ("C: C") a szkript azt az oszlopot jelöli, ahol a feltétel található.

3. Ezután nyomja meg a gombot F5 gombot a kód futtatásához, és az adott feltétellel rendelkező összes sort kimásolta és beillesztette egy új Kutools for Excel nevű munkalapra az aktuális munkafüzetben. Lásd a képernyőképet:


Relatívabb adat-cikkek húzása vagy másolása:

  • Adatok másolása egy másik munkalapra, speciális szűrővel az Excel programban
  • Normál esetben gyorsan alkalmazhatjuk a Speciális szűrő funkciót, hogy ugyanabban a munkalapon nyerjük ki az adatokat a nyers adatokból. De néha, amikor megpróbálja másolni a szűrt eredményt egy másik munkalapra, a következő figyelmeztető üzenetet kapja. Ebben az esetben hogyan kezelheti ezt a feladatot az Excel programban?
  • Sorok másolása új munkalapra az Excel oszlopfeltételei alapján
  • Például van egy gyümölcsvásárlási táblázat, és most le kell másolnia a rekordokat egy új gyümölcslapra a meghatározott gyümölcs alapján, hogyan lehet ezt egyszerűen elvégezni az Excelben? Itt bemutatok néhány módszert a sorok új lapra másolására az Excel oszlopfeltételei alapján.
  • Sorok másolása, ha az oszlop meghatározott szöveget / értéket tartalmaz az Excelben
  • Tegyük fel, hogy meg akarja találni azokat a cellákat, amelyek egy szöveget vagy értéket tartalmaznak egy oszlopban, majd átmásolja az egész sort, ahol a megtalált cella található, hogyan kezelhetné? Itt bemutatok néhány módszert annak megállapítására, hogy az oszlop tartalmaz-e konkrét szöveget vagy értéket, majd átmásolom a teljes sort az Excel-be.

  • Szuper Formula Bár (könnyedén szerkeszthet több szöveget és képletet); Olvasás elrendezés (könnyen olvasható és szerkeszthető nagyszámú cella); Beillesztés a Szűrt tartományba...
  • Cellák / sorok / oszlopok egyesítése és az adatok megőrzése; Osztott cellák tartalma; Kombinálja az ismétlődő sorokat és az Összeg / Átlagot... megakadályozza az ismétlődő cellákat; Hasonlítsa össze a tartományokat...
  • Válassza a Másolat vagy az Egyedi lehetőséget Sorok; Válassza az Üres sorok lehetőséget (az összes cella üres); Super Find és Fuzzy Find sok munkafüzetben; Véletlenszerű kiválasztás ...
  • Pontos másolás Több cella a képletreferencia megváltoztatása nélkül; Automatikus referenciák létrehozása több lapra; Helyezze be a golyókat, Jelölőnégyzetek és még sok más ...
  • Kedvenc és gyorsan beszúrható képletek, Tartományok, diagramok és képek; Cellák titkosítása jelszóval; Levelezőlista létrehozása és e-maileket küldeni ...
  • Kivonat szöveg, Szöveg hozzáadása, Eltávolítás pozíció szerint, Hely eltávolítása; Hozz létre és nyomtasson személyhívó részösszegeket; Konvertálás a cellatartalom és a megjegyzések között...
  • Szuper szűrő (mentse el és alkalmazza a szűrősémákat más lapokra); Haladó rendezés hónap / hét / nap, gyakoriság és egyebek szerint; Speciális szűrő félkövér, dőlt betűvel ...
  • Kombinálja a munkafüzeteket és a munkalapokat; Táblázatok egyesítése kulcsoszlopok alapján; Az adatok felosztása több lapra; Kötegelt konvertálás xls, xlsx és PDF...
  • Pivot tábla csoportosítás hét száma, a hét napja és egyebek ... Mutassa a Feloldott, Zárt cellákat különböző színekkel; Jelölje ki azokat a cellákat, amelyeknek képlete / neve van...
kte lap 201905
  • Füles szerkesztés és olvasás engedélyezése Wordben, Excelben és PowerPointban, Publisher, Access, Visio és Project.
  • Több dokumentum megnyitása és létrehozása ugyanazon ablak új lapjain, mint új ablakokban.
  • 50% -kal növeli a termelékenységet, és naponta több száz kattintással csökkenti az egér kattintását!
officetab alja
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