เมื่อข้อมูลแยกกันอยู่หลายชีตการเข้าถึงข้อมูลจะยุ่งยากขึ้นมาทันที แม้เราจะมีฟังก์ชั่นการค้นหาของ Excel ที่มีความสามารถสูงส่งก็ยังไม่มีความเป็นอัตโนมัติพอที่่จะให้เราทำงานได้โดยสะดวกรวดเร็ว วิธีการที่จะให้เกิดความสะดวกในการค้นหาข้อมูลตามที่เราต้องการแล้วนำมาเรียงต่อกันในชีตเดียวได้อย่างรวดเร็วได้นั้นคือการใช้ VBA
Video ด้านล่างนี้เป็นการเขียนโปรแกรมค้นหาข้อมูลจากหลายชีตแล้วนำรายการที่พบมาเรียงต่อกันในชีตเดียว พร้อมทั้งวิธีสร้างปุ่มกดเพื่อใช้ในการค้นหาข้อมูล เหมาะสำหรับผู้ที่มีข้อมูลจำนวนมาก ๆ แยกกันอยู่ในหลาย ๆ ชีต จะช่วยลดระยะเวลาในการค้นหาได้อย่างมหาศาล โดยมีตัวอย่าง Code ตามด้านล่างครับ ?
Sub SearchMultipleSheets() Dim arr(999, 4) As Variant, r As Range Dim ws As Worksheet, i As Integer, s As String With Sheets(1) s = .Range("c1").Value .Range("a3").Resize(.UsedRange.Rows.Count, _ .UsedRange.Columns.Count).ClearContents End With For Each ws In Worksheets If ws.Name <> Sheets(1).Name Then With ws For Each r In .Range("a2", .Range("a" & .Rows.Count).End(xlUp)) If r.Value & r.Offset(0, 1).Value & _ r.Offset(0, 2).Value & _ r.Offset(0, 3).Value Like "*" & s & "*" Then arr(i, 0) = r.Value arr(i, 1) = r.Offset(0, 1).Value arr(i, 2) = r.Offset(0, 2).Value arr(i, 3) = r.Offset(0, 3).Value arr(i, 4) = ws.Name End If Next r End With End If Next ws With Sheets(1) .Range("a3").Resize(i, 5).Value = arr End With End Sub |