Vba: วิธีคัดลอกเส้นที่มองเห็นไปยังแผ่นงานอื่น
คุณสามารถใช้ไวยากรณ์ต่อไปนี้ใน VBA เพื่อคัดลอกเฉพาะแถวที่มองเห็นจากแผ่นงานหนึ่งไปยังอีกแผ่นหนึ่ง:
SubCopyVisibleRows ()
Dim sourceWS As Worksheet
Dim destinationWS As Worksheet
Set sourceWS = ThisWorkbook.Sheets(" Sheet1 ")
Set destinationWS = ThisWorkbook.Sheets(" Sheet2 ")
sourceWS.Range(" A1:D999 ").SpecialCells(xlCellTypeVisible).Copy
destinationWS.Cells(1, 1).PasteSpecial
Application.CutCopyMode = False
End Sub
มาโครนี้จะคัดลอกแต่ละแถวที่มองเห็นได้ในช่วง A1:D999 ของ Sheet1 และวางโดยเริ่มจากเซลล์ A1 ของ Sheet2
หมายเหตุ : บรรทัด Application.CutCopyMode = False ระบุว่าควรปิดใช้งานโหมดการตัดและคัดลอกหลังจากเรียกใช้แมโคร
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: คัดลอกแถวที่มองเห็นไปยังแผ่นงานอื่นโดยใช้ VBA
สมมติว่าเรามีชุดข้อมูลต่อไปนี้ใน แผ่นที่ 1 ซึ่งมีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:

ตอนนี้ สมมติว่าเราใช้ตัวกรองกับชุดข้อมูลเพื่อแสดงเฉพาะแถวที่ชื่อทีมเท่ากับ Mavs หรือ Spurs:

ตอนนี้ สมมติว่าเราต้องการใช้ VBA เพื่อคัดลอกเฉพาะเซลล์ที่มองเห็นจาก Sheet1 ไปยัง Sheet2
เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:
SubCopyVisibleRows ()
Dim sourceWS As Worksheet
Dim destinationWS As Worksheet
Set sourceWS = ThisWorkbook.Sheets(" Sheet1 ")
Set destinationWS = ThisWorkbook.Sheets(" Sheet2 ")
sourceWS.Range(" A1:D999 ").SpecialCells(xlCellTypeVisible).Copy
destinationWS.Cells(1, 1).PasteSpecial
Application.CutCopyMode = False
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้ใน Sheet2 :

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