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: วิธีแทรกหลายบรรทัด