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

Поделиться
HTML-код
  • Опубликовано: 4 дек 2024
  • -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 (สอนสด) ได้ที่ลิงค์นี้เลย excelchannel.c...
    👉สอนสดเจอตัว ที่ 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

Комментарии • 6

  • @munuizze
    @munuizze 7 месяцев назад +1

    ขอบคุณอ.ชาติค่ะ

  • @wasanwanichpisitkul7844
    @wasanwanichpisitkul7844 7 месяцев назад +1

    ขอบคุณมากครับ อธิบายละเอียดดีครับ

    • @Excelchannel
      @Excelchannel  7 месяцев назад

      ขอบคุณครับสำหรับ feedback ดี ๆ ครับ ❤️

  • @phakapornpetjaroon8660
    @phakapornpetjaroon8660 8 месяцев назад +1

    มาดูย้อนหลัง แล้วนำไปใช้กับงานลดเวลาได้เยอะเลยค่ะ ขอบคุณสำหรับเกร็ดความรู้ของ VBA มากๆเลยค่ะ
    สอบถามค่ะ
    ไฟล์ที่เราตั้งไว้ สามารถตั้งไว้ที่ Drive ส่วนกลางได้ไหมคะ เพราะข้อมูลหลักที่เราจะ Vlookup เป็นของเพื่อนทำ เราแค่ต้องการข้อมูลของเพื่อนเพื่อมาทำงานต่อ

    • @Excelchannel
      @Excelchannel  8 месяцев назад

      เยี่ยมเลยครับ
      แปลว่าต้องชอบใช้ vba แน่ ๆ เลย อย่าลืมตามไปดูคลิป vba อื่น ๆ นะครับ มีอีกหลายคลิปเลย vba ช่วยเพิ่มประสิทธิภาพและประสิทธิผลให้งานได้มากมายเลยครับ
      อย่าลืมแชร์ให้คนอื่นได้เรียนรู้ด้วยนะครับ ร่วมกันสร้างสังคมแห่งการแบ่งปัน ❤️😀

  • @airwalkdjflip293
    @airwalkdjflip293 Год назад

    2