Gå til hovedindhold

Hvordan kopieres rækker fra flere regneark baseret på kriterier til et nyt ark?

Antag, du har en projektmappe med tre regneark, der har samme formatering som vist nedenstående skærmbillede. Nu vil du kopiere alle rækkerne fra disse regneark, hvilken kolonne C indeholder teksten "Fuldført" til et nyt regneark. Hvordan kunne du løse dette problem hurtigt og nemt uden at kopiere og indsætte dem en efter en manuelt?

Kopier rækker fra flere regneark baseret på kriterier til et nyt ark med VBA-kode


Kopier rækker fra flere regneark baseret på kriterier til et nyt ark med VBA-kode

Den følgende VBA-kode kan hjælpe dig med at kopiere specifikke rækker fra alle regneark i projektmappen baseret på en bestemt tilstand til et nyt regneark. Gør som dette:

1. Hold nede ALT + F11 nøgler til at åbne Microsoft Visual Basic til applikationer vindue.

2. Klik indsatte > Moduler, og indsæt følgende kode i modulvinduet.

VBA-kode: Kopier rækker fra flere ark baseret på kriterier til et nyt ark

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

Bemærk: I ovenstående kode:

  • Teksten "Afsluttet" heri xRStr = "Afsluttet" script angiver den specifikke betingelse, som du vil kopiere rækker baseret på;
  • C: C i dette Indstil xRg = xWs.Range ("C: C") scriptet angiver den specifikke kolonne, hvor betingelsen findes.

3. Tryk derefter på F5 nøgle til at køre denne kode, og alle rækkerne med den specifikke tilstand er kopieret og indsat i et nyt regneark med navnet Kutools til Excel i den aktuelle projektmappe. Se skærmbillede:


Flere relative træk- eller kopieringsartikler:

  • Kopier data til et andet regneark med avanceret filter i Excel
  • Normalt kan vi hurtigt anvende funktionen Avanceret filter til at udtrække data fra rådataene i det samme regneark. Men nogle gange, når du prøver at kopiere det filtrerede resultat til et andet regneark, får du følgende advarselsmeddelelse. I dette tilfælde, hvordan kunne du håndtere denne opgave i Excel?
  • Kopier rækker til nyt ark baseret på kolonnekriterier i Excel
  • For eksempel er der en frugtkøbstabel, og nu skal du kopiere poster til nyt ark baseret på specificeret frugt, hvordan får man det let i Excel? Her vil jeg introducere et par metoder til at kopiere rækker til nyt ark baseret på kolonnekriterier i Excel.
  • Kopier rækker, hvis kolonne indeholder specifik tekst / værdi i Excel
  • Antag, at du vil finde ud af celler, der indeholder specifik tekst eller værdi i en kolonne, og derefter kopiere hele rækken, hvor den fundne celle er, hvordan kan du håndtere den? Her vil jeg introducere et par metoder til at finde ud af, om kolonnen indeholder specifik tekst eller værdi og derefter kopiere hele rækken i Excel.

  • Super formel bar (let redigere flere linjer med tekst og formel); Læsning Layout (let at læse og redigere et stort antal celler); Indsæt til filtreret rækkevidde...
  • Flet celler / rækker / kolonner og opbevaring af data; Split celler indhold; Kombiner duplikatrækker og sum / gennemsnit... Forhindre duplikerede celler; Sammenlign områder...
  • Vælg Duplicate eller Unique Rækker; Vælg tomme rækker (alle celler er tomme); Super Find og Fuzzy Find i mange arbejdsbøger; Tilfældig valg ...
  • Præcis kopi Flere celler uden at ændre formelreference; Auto Opret referencer til flere ark; Indsæt kugler, Afkrydsningsfelter og mere ...
  • Foretrukne og hurtigt indsætte formler, Områder, diagrammer og billeder; Krypter celler med adgangskode Opret postliste og send e-mails ...
  • Uddrag tekst, Tilføj tekst, Fjern efter position, Fjern mellemrum; Opret og udskriv personsøgningssubtotaler; Konverter mellem celler indhold og kommentarer...
  • Superfilter (gem og anvend filterskemaer på andre ark); Avanceret sortering efter måned / uge / dag, hyppighed og mere; Specielt filter af fed, kursiv ...
  • Kombiner arbejdsbøger og arbejdsark; Fletabeller baseret på nøglekolonner; Opdel data i flere ark; Batch Konverter xls, xlsx og PDF...
  • Pivottabelgruppering efter ugenummer, ugedag og mere ... Vis ulåste, låste celler ved forskellige farver; Fremhæv celler, der har formel / navn...
kte-fane 201905
  • Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
  • Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
  • Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!
officetab bund
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