ดึงข้อมูลจากต่างไฟล์ด้วยสูตร Vlookup โดยเขียน VBA

Описание к видео ดึงข้อมูลจากต่างไฟล์ด้วยสูตร Vlookup โดยเขียน VBA

-Excel Automation: ดึงข้อมูลจากต่างไฟล์ด้วยสูตร Vlookup โดยเขียน VBA

การเขียนใช้ function ต่าง ๆ ใน VBA มีลักษณะคล้ายกับการเขียนใน Spreadsheet ฉะนั้น หาก user เข้าใจ และสามารถใช้ Function ต่าง ๆ ใน Spreadsheet ของ Excel ได้ดี ก็มีส่วนช่วยในการใช้ Function ใน VBA เช่นกัน

แต่จะมีความต่างบ้างบางประการคือ...
1) ใน VBA จะไม่มี Argument help ให้ ฉะน้้นผู้ใช้ต้องมีความแม่นยำในการใช้ Function ต่าง ๆ พอสมควร

2) การอ้างอิงพื้นที่ต่าง ๆ จะไม่สะดวกเหมือนการใช้ mouse click ใน Spreadsheet (ดูในไลฟ์)

3) หากผลลัพธ์ Error จะเกิดการ Debug โค้ดจะไม่ทำงานต่อ ซึ่งแตกต่างจากการใช้ Function ใน Spreadsheet เราจึงต้อง ใช้ Error trap ช่วย

ขอให้สนุกกับการชม ครับ

....#หากสนใจเรียน_VBA_กับผม.....
👉 สมัครเรียน VBA (สอนสด) ได้ที่ลิงค์นี้เลย https://excelchannel.com/product/vba1/
👉สอนสดเจอตัว ที่ SCG experience เลียบด่วนรามอินทรา
**กรุณาทักมาจองที่ก่อน **
#รับจำนวนจำกัดเพียง_5_ท่าน
👉สอนสดทาง ZOOM (สะดวกไม่ต้องเดินทาง)
รับจำนวนจำกัด 10 ท่าน
👉 หรือ ทักมาคุยกันก่อนที่ m.me/excelbypichart หรือ โทร. 099-084-2562
🔸 เรียนจบมี...
มี Certificate
รับเข้ากลุ่มปิด Facebook เพื่อพูดคุยสอบถามเรียนรู้เพิ่มเติม
สามารถชมคลิปการเรียนย้อนหลังได้ตลอดเวลา
สามารถโทรฯ มาปรึกษางานที่ทำอยู่ได้
🔸 เราจะเรียนวันที่ 22-23 กรกฎาคม 2566
(เป็นวันเสาร์ ่และอาทิตย์)
🔸 คอร์สนี้ต้องใช้เวลาเรียน 2 วันเต็ม ๆ
👉 ติดต่อสอบถามเนื้อหาเพิ่มเติม หรือสมัครได้ที่ลิงค์นี้ m.me/excelbypichart หรือ โทร. 099-084-2562

----- วันนี้ได้โค้ด แบบนี้ครับ -----
Sub VlookupFromOtherWb_2()

Dim i As Long
Dim MySourceWb As Workbook, MySourceSh As Worksheet, MySourceRng As Range

Set MySourceWb = Workbooks.Open(sh01_MainSh.Range("L1").Value)
Set MySourceSh = MySourceWb.Sheets(1)
Set MySourceRng = MySourceSh.Range("A1:H" & MySourceSh.Range("A" & Rows.Count).End(xlUp).Row)

For i = 2 To sh01_MainSh.Range("A" & Rows.Count).End(xlUp).Row
On Error GoTo trapNotFound
sh01_MainSh.Range("E" & i).Value = WorksheetFunction.VLookup(sh01_MainSh.Range("A" & i).Value, MySourceRng, 5, 0)
sh01_MainSh.Range("F" & i).Value = WorksheetFunction.VLookup(sh01_MainSh.Range("A" & i).Value, MySourceRng, 6, 0)
sh01_MainSh.Range("G" & i).Value = WorksheetFunction.VLookup(sh01_MainSh.Range("A" & i).Value, MySourceRng, 7, 0)
sh01_MainSh.Range("H" & i).Value = WorksheetFunction.VLookup(sh01_MainSh.Range("A" & i).Value, MySourceRng, 8, 0)
Next i

MySourceWb.Close
MsgBox "F I N I S H ! ! !"
Exit Sub

'*******************************************
trapNotFound:
sh01_MainSh.Range("E" & i).Value = "Not Found"
sh01_MainSh.Range("F" & i).Value = "Not Found"
sh01_MainSh.Range("G" & i).Value = "Not Found"
sh01_MainSh.Range("H" & i).Value = "Not Found"
Resume Next

End Sub

Комментарии

Информация по комментариям в разработке