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