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: วิธีวางค่าโดยไม่ต้องจัดรูปแบบเท่านั้น

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *