Vba: วิธีดึงข้อมูลจากสมุดงานอื่น


คุณสามารถใช้ไวยากรณ์ต่อไปนี้ใน VBA เพื่อแยกข้อมูลจากสมุดงานอื่น:

 SubExtractData ()
    
    'turn off screen updates to make this run faster
    Application.ScreenUpdating = False
    
    'specify workbook we want to extract data from
    Set wb = Workbooks.Open(" C:\Users\bobbi\OneDrive\Desktop\my_data.xlsx ")
    
    'extract all data from Sheet1 and paste as new sheet in current workbook
    wb.Sheets(" Sheet1 ").Copy After:=ThisWorkbook.Sheets(1)
    
    'do not save any changes to workbook we extract data from
    wb.Close SaveChanges:=False
    
    'turn screen updating back on
    Application.ScreenUpdating = True
    
End Sub

แมโครนี้โดยเฉพาะจะเปิดสมุดงานชื่อ my_data.xlsx ซึ่งอยู่ในตำแหน่งต่อไปนี้:

C:\Users\Bob\Desktop\my_data.xlsx

จากนั้นจะคัดลอกข้อมูลทั้งหมดจากแผ่นงานที่เรียกว่า Sheet1 ลงในสมุดงานนี้ และคัดลอกลงในแผ่นงานโดยตรงต่อจากแผ่นงานแรกในสมุดงานที่เราใช้งานอยู่ในปัจจุบัน

หมายเหตุ : บรรทัด Application.ScreenUpdating = False บอกให้ VBA เรียกใช้กระบวนการนี้ในเบื้องหลังเพื่อให้ทำงานเร็วขึ้น

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่าง: แยกข้อมูลจากสมุดงานอื่นโดยใช้ VBA

สมมติว่าเราเปิดเวิร์กบุ๊ก Excel ต่อไปนี้และเรากำลังดูอยู่:

ตอนนี้สมมติว่าเราปิดสมุดงานอื่นแล้ว แต่มีข้อมูลต่อไปนี้:

เราสามารถใช้มาโครต่อไปนี้เพื่อแยกข้อมูลจาก แผ่นงาน 1 ของสมุดงานที่ปิดอยู่นี้ และวางลงในแผ่นงานใหม่ได้โดยตรงหลังจากแผ่นงานแรกของสมุดงานที่เปิดอยู่ในปัจจุบัน:

 SubExtractData ()
    
    'turn off screen updates to make this run faster
    Application.ScreenUpdating = False
    
    'specify workbook we want to extract data from
    Set wb = Workbooks.Open(" C:\Users\bobbi\OneDrive\Desktop\my_data.xlsx ")
    
    'extract all data from Sheet1 and paste as new sheet in current workbook
    wb.Sheets(" Sheet1 ").Copy After:=ThisWorkbook.Sheets(1)
    
    'do not save any changes to workbook we extract data from
    wb.Close SaveChanges:=False
    
    'turn screen updating back on
    Application.ScreenUpdating = True
    
End Sub

เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:

โปรดทราบว่าข้อมูลจากสมุดงานแบบปิดได้ถูกแยกและวางเป็นแผ่นงานใหม่ลงในสมุดงานที่ใช้งานอยู่ในปัจจุบันของเรา

คุณสามารถเปลี่ยนชื่อแผ่นงานใหม่ได้ตามต้องการเนื่องจากมันเหมือนกับแผ่นงานปัจจุบัน

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:

VBA: วิธีนับจำนวนแผ่นงานในสมุดงาน
VBA: วิธีแทรกหลายคอลัมน์
VBA: วิธีแทรกหลายบรรทัด

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

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