Vba: คัดลอกแถวไปยังแผ่นงานอื่นตามเกณฑ์
คุณสามารถใช้ไวยากรณ์ต่อไปนี้ใน VBA เพื่อคัดลอกแต่ละแถวในชีตที่ตรงตามเกณฑ์เฉพาะไปยังชีตอื่น:
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
มาโครนี้จะคัดลอกแต่ละแถวของ Sheet1 โดยที่คอลัมน์ A เท่ากับ “Mavs” และวางแต่ละแถวเหล่านั้นลงในแถวถัดไปที่มีอยู่ของ Sheet2
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: คัดลอกแถวไปยังแผ่นงานอื่นตามเกณฑ์โดยใช้ VBA
สมมติว่าเรามีชุดข้อมูลต่อไปนี้ใน แผ่นที่ 1 ซึ่งมีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:

และสมมติว่าเรามีชุดข้อมูลต่อไปนี้ใน Sheet2 :

โปรดทราบว่า Sheet2 มีเฉพาะข้อมูลเกี่ยวกับผู้เล่นในทีม Warriors เท่านั้น
สมมติว่าเราต้องการคัดลอกแต่ละแถวจาก Sheet1 โดยที่คอลัมน์ Team เท่ากับ Mavs และวางแต่ละแถวเหล่านั้นลงในแถวถัดไปที่มีอยู่ของ Sheet2
เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:
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
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้ใน Sheet2 :

โปรดทราบว่าแต่ละแถวใน Sheet1 ซึ่งชื่อทีมเท่ากับ Mavs จะถูกวางลงในแถวถัดไปที่มีอยู่ใน Sheet2
หมายเหตุ : คุณสามารถดูเอกสารฉบับเต็มสำหรับวิธี การคัดลอก VBA ได้ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:
VBA: วิธีค้นหาบรรทัดที่ใช้ล่าสุด
VBA: วิธีนับจำนวนแถวในช่วง
VBA: วิธีนับจำนวนคอลัมน์ที่ใช้