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