เมื่อข้อมูลแยกกันอยู่หลายชีตการเข้าถึงข้อมูลจะยุ่งยากขึ้นมาทันที แม้เราจะมีฟังก์ชั่นการค้นหาของ 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
📹 Video แสดงการค้นหาข้อมูลจากหลายชีต
🧭 Timeline หัวข้อหลัก
- 00:00:13 แนะนำวัตถุประสงค์: ค้นหาข้อมูลจากหลายชีตแล้วรวมผลลัพธ์
- 00:00:45 สาธิตข้อมูลต้นทาง: product, quantity, amount ในชีต 2–4
- 00:01:02 สร้าง Procedure ชื่อ Search_Multiple_Sheet
- 00:01:18 ประกาศตัวแปร: Array, Range, Worksheet, Counter, Search Text
- 00:02:01 กำหนดค่า Search จากเซลล์ C1 ของชีตหลัก
- 00:02:35 เคลียร์พื้นที่แสดงผลในชีตหลัก (A3 เป็นต้นไป)
- 00:03:24 Loop เข้าไปในแต่ละชีต ยกเว้นชีตหลัก
- 00:04:05 Loop เข้าไปในแต่ละเซลล์ของคอลัมน์ A
- 00:04:39 เชื่อมข้อมูลจากเซลล์ปัจจุบันและเซลล์ด้านขวาอีก 3 คอลัมน์
- 00:05:15 ตรวจสอบว่าข้อมูลที่เชื่อมมีคำค้นหรือไม่
- 00:05:37 หากพบข้อมูลตรงเงื่อนไข ให้นำมาเก็บใน Array
- 00:06:45 เพิ่มตัวนับเพื่อจัดเก็บข้อมูลหลายรายการ
- 00:07:00 นำข้อมูลจาก Array มาวางที่ชีตหลัก
- 00:07:41 ทดสอบการค้นหาด้วยค่า “20” และ “1”
- 00:08:17 สร้างปุ่มเสิร์ชด้วย Developer → Insert → Button
- 00:08:41 ทดสอบการค้นหาด้วยปุ่มเสิร์ช 00:08:54 สรุปจบคลิป

