Vba: kopieer rijen naar een ander blad op basis van criteria


U kunt de volgende syntaxis in VBA gebruiken om elke rij in een blad die aan specifieke criteria voldoet, naar een ander blad te kopiëren:

 Sub CopyToAnotherSheet()

   Dim LastRow As Long

  'Find last used row in a Column A of Sheet1
   With Worksheets(" Sheet1 ")
      LastRow = .Cells(.Rows.Count, " A ").End(xlUp).Row
   End With

   'Find first row where values should be posted in Sheet2
   With Worksheets(" Sheet2 ")
      j = .Cells(.Rows.Count, " A ").End(xlUp).Row + 1
   End With
   
   'Paste each row that contains "Mavs" in column A of Sheet1 into Sheet2
   For i = 1 TB LastRow
       With Worksheets(" Sheet1 ")
           If .Cells(i, 1).Value = "Mavs" Then
               .Rows(i).Copy Destination:=Worksheets(" Sheet2 ").Range(" A " & j)
               j = j + 1
           End If
       End With
   Next i
   
End Sub

Deze specifieke macro kopieert elke rij van Sheet1 waarbij kolom A gelijk is aan „Mavs“ en plakt elk van die rijen in de volgende beschikbare rijen van Sheet2 .

Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.

Voorbeeld: Kopieer rijen naar een ander blad op basis van criteria met behulp van VBA

Stel dat we de volgende gegevensset in Blad 1 hebben die informatie bevat over verschillende basketbalspelers:

En stel dat we de volgende gegevensset in Blad2 hebben:

Houd er rekening mee dat Sheet2 alleen gegevens bevat over Warriors-teamspelers.

Laten we zeggen dat we elke rij uit Blad1 willen kopiëren, waarbij de kolom Team gelijk is aan Mavs, en elk van deze rijen in de volgende beschikbare rijen van Blad2 willen plakken.

We kunnen hiervoor de volgende macro maken:

 Sub CopyToAnotherSheet()

   Dim LastRow As Long

  'Find last used row in a Column A of Sheet1
   With Worksheets(" Sheet1 ")
      LastRow = .Cells(.Rows.Count, " A ").End(xlUp).Row
   End With

   'Find first row where values should be posted in Sheet2
   With Worksheets(" Sheet2 ")
      j = .Cells(.Rows.Count, " A ").End(xlUp).Row + 1
   End With
   
   'Paste each row that contains "Mavs" in column A of Sheet1 into Sheet2
   For i = 1 TB LastRow
       With Worksheets(" Sheet1 ")
           If .Cells(i, 1).Value = "Mavs" Then
               .Rows(i).Copy Destination:=Worksheets(" Sheet2 ").Range(" A " & j)
               j = j + 1
           End If
       End With
   Next i
   
End Sub

Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer in Sheet2 :

Merk op dat elke rij in Sheet1 waar de teamnaam gelijk was aan Mavs, in de volgende beschikbare rijen in Sheet2 werd geplakt.

Opmerking : u kunt hier de volledige documentatie voor de VBA Copy- methode vinden.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in VBA kunt uitvoeren:

VBA: hoe u de laatst gebruikte regel kunt vinden
VBA: het aantal rijen binnen bereik tellen
VBA: het aantal gebruikte kolommen tellen

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert