Vba: menyalin baris ke lembar lain berdasarkan kriteria


Anda dapat menggunakan sintaks berikut di VBA untuk menyalin setiap baris dalam lembar yang memenuhi kriteria tertentu ke lembar lain:

 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

Makro khusus ini akan menyalin setiap baris Sheet1 di mana kolom A sama dengan “Mavs” dan menempelkan setiap baris tersebut ke baris Sheet2 berikutnya yang tersedia.

Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.

Contoh: Salin baris ke sheet lain berdasarkan kriteria menggunakan VBA

Misalkan kita memiliki kumpulan data berikut di Lembar 1 yang berisi informasi tentang berbagai pemain bola basket:

Dan misalkan kita memiliki kumpulan data berikut di Sheet2 :

Perhatikan bahwa Sheet2 hanya berisi data pemain tim Warriors.

Katakanlah kita ingin menyalin setiap baris dari Sheet1 di mana kolom Team sama dengan Mavs dan menempelkan setiap baris tersebut ke baris berikutnya yang tersedia di Sheet2 .

Kita dapat membuat makro berikut untuk melakukan ini:

 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

Saat kami menjalankan makro ini, kami menerima output berikut di Sheet2 :

Perhatikan bahwa setiap baris di Sheet1 yang nama timnya sama dengan Mavs ditempelkan ke baris berikutnya yang tersedia di Sheet2 .

Catatan : Anda dapat menemukan dokumentasi lengkap untuk metode VBA Copy di sini .

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di VBA:

VBA: Cara menemukan baris yang terakhir digunakan
VBA: Cara menghitung jumlah baris dalam jangkauan
VBA: Cara menghitung jumlah kolom yang digunakan

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *