การค้นหาข้อมูลด้วย VBA

การค้นหาใน Excel สามารถกดแป้น Ctrl+F เพื่อเปิดกล่องโต้ตอบที่ใช้สำหรับการค้นหา กรอกข้อมูลที่ต้องการแล้วคลิกปุ่ม Find Next หรือ Find All แล้วแต่ว่าต้องการค้นหาไปทีละค่าหรือค้นหาทั้งหมด การค้นหาดังกล่าวเป็นการวิ่งไปยังเซลล์ที่พบข้อมูล

หากจะให้แสดงผลทั้งบรรทัดจำเป็นต้องใช้ VBA เข้ามาจัดการ

Video ด้านล่างนี้เป็นการสาธิตการค้นหาด้วย VBA โดยจะทำการค้นหาไปยังแต่ละเซลล์ในบรรทัดนั้น ๆ หากพบข้อมูลที่ต้องการจะแสดงขึ้นมาทั้งบรรทัด และหากไม่พบข้อมูลก็จะซ่อนบรรทัดนั้นไว้ ซึ่งได้เพิ่มความสะดวกในการค้นหาโดยการคีย์ข้อมูลที่ต้องการค้นหาแล้ว Enter โปรแกรมก็จะทำการค้นหาให้ทันที โดยตัวอย่างนี้จะมี Code 2 ชุด ชุดแรกวางที่ชีต Database เพื่อให้ทำงานทันทีหลังจากเซลล์ B1 มีการเปลี่ยนแปลงโดยไปเรียก Code ชุดที่สองที่วางที่ Module 1 ให้งานต่ออีกทอดเพื่อค้นหาข้อมูล ทำการซ่อนบรรทัดที่ไม่พบข้อมูลและแสดงบรรทัดที่พบข้อมูล ?

🧑‍💻 Code ใน Module1

Sub MyAdvancedSearch()
    Dim r As Range, v As String, s As String
    With Sheets("Database")
        .Range("a3").CurrentRegion.EntireRow.Hidden = False
        s = LCase(.Range("b1").Value)
        For Each r In .Range("a4", .Range("a" & .Rows.Count).End(xlUp))
            v = ""
            v = v & r.Value
            v = v & r.Offset(0, 1).Value
            v = v & r.Offset(0, 2).Value
            v = v & r.Offset(0, 3).Value
            v = v & r.Offset(0, 4).Value
            v = LCase(v)
            If Not v Like "*" & s & "*" Then
                r.EntireRow.Hidden = True
            End If
        Next r
    End With
End Sub

🧑‍💻 Code ในชีต Database

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(0, 0) = "B1" Then
        Call Module1.MyAdvancedSearch
    End If
End Sub

📹 Video แสดงการค้นหาด้วย VBA


🧭 Timeline หัวข้อหลัก

  • 00:00:18 แนะนำการค้นหาใน Excel ด้วย Ctrl+F และข้อจำกัด
  • 00:00:45 แนวคิดการใช้ VBA เพื่อค้นหาและแสดงผลทั้งแถว
  • 00:01:20 เขียนโค้ดใน Module1 เพื่อค้นหาและซ่อนแถว
  • 00:02:30 เขียนโค้ดในชีต Database เพื่อเรียกใช้งานเมื่อ B1 เปลี่ยนค่า
  • 00:03:40 ทดสอบการค้นหา: พิมพ์คำค้นแล้ว Enter → แสดงเฉพาะแถวที่ตรง
  • 00:04:30 สรุป: ค้นหาแบบอัตโนมัติและแสดงผลเฉพาะข้อมูลที่เกี่ยวข้อง
Scroll to Top