แจ้ง และ รายงานผลการค้นหาของ VLOOKUP ด้วย VBA

แชร์
ฝัง
  • เผยแพร่เมื่อ 15 พ.ย. 2024
  • แจ้ง และ รายงานผลการค้นหาของ VLOOKUP ด้วย VBA
    ในการค้นหาด้วย VLOOKUP เป็นเรื่องปกติที่จะมีรายการค้นหาบางรายการที่ไม่พบใน ตารางค้นหา เป็นการดีที่เราจะ แสดงรายงาน หรือมีการแจ้งเตือนกรณีที่พบว่ามีการค้นหาที่ไม่ สมบูรณ์
    วันนี้ จะเขียน VBA เพื่อ ทำ 3 Tasks นี้คือ..
    1) ไฮไลต์บรรทัดที่ค้นหาไม่พบ
    2) list รายการที่ค้นหาไม่พบไปไว้ที่ หน้า Excel เพื่อชวยในการตรวจสอบในภายหลัง
    3) แสดง list รายการที่ Error ด้วย message box
    มาดูกันครับ
    ขอให้สนุกกับการชม ครับ
    ------// ได้โค้ดแบบนี้ // -------
    Sub VlookupFromOtherWb_ReportError()
    Dim i As Long, MyErrorText As String
    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 Resume Next
    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)
    On Error GoTo trapNotFound
    sh01_MainSh.Range("H" & i).Value = WorksheetFunction.VLookup(sh01_MainSh.Range("A" & i).Value, MySourceRng, 8, 0)
    Next i
    MySourceWb.Close
    If MyErrorText = "" Then
    MsgBox "F I N I S H ! ! !"
    Else
    MsgBox "Not Found Report:" & MyErrorText
    End If
    Exit Sub
    '*******************************************
    trapNotFound:
    sh01_MainSh.Range("E" & i, "H" & i).Value = "Not Found"
    sh01_MainSh.Range("A" & i, "H" & i).Interior.Color = RGB(255, 255, 0)
    MyErrorText = MyErrorText & vbNewLine & sh01_MainSh.Range("A" & i).Value & " " & "Row " & i
    sh01_MainSh.Range("L6").Value = "Not Found Report:" & MyErrorText
    Resume Next
    End Sub
    -------------//------------
    ....#หากสนใจเรียน_VBA_กับผม.....
    👉 สมัครเรียน VBA (สอนสด) ได้ที่ลิงค์นี้เลย excelchannel.c...
    👉สอนสดเจอตัว ที่ SCG experience เลียบด่วนรามอินทรา
    **กรุณาทักมาจองที่ก่อน **
    #รับจำนวนจำกัดเพียง_5_ท่าน (ตอนนี้เหลือ 2 ที่)
    👉สอนสดทาง ZOOM (สะดวกไม่ต้องเดินทาง)
    รับจำนวนจำกัด 10 ท่าน
    👉 หรือ ทักมาคุยกันก่อนที่ m.me/excelbypichart หรือ โทร. 099-084-2562
    🔸 เรียนจบมี...
    มี Certificate
    รับเข้ากลุ่มปิด Facebook เพื่อพูดคุยสอบถามเรียนรู้เพิ่มเติม
    สามารถชมคลิปการเรียนย้อนหลังได้ตลอดเวลา
    สามารถโทรฯ มาปรึกษางานที่ทำอยู่ได้
    🔸 เราจะเรียนวันที่ 22-23 กรกฎาคม 2566
    (เป็นวันเสาร์ ่และอาทิตย์)
    🔸 คอร์สนี้ต้องใช้เวลาเรียน 2 วันเต็ม ๆ
    👉 ติดต่อสอบถามเนื้อหาเพิ่มเติม หรือสมัครได้ที่ลิงค์นี้ m.me/excelbypichart หรือ โทร. 099-084-2562

ความคิดเห็น •