เมื่อข้อมูลแยกกันอยู่หลายชีตการเข้าถึงข้อมูลจะยุ่งยากขึ้นมาทันที แม้เราจะมีฟังก์ชั่นการค้นหาของ 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