เลือกข้อมูลที่เข้าเงื่อนไขมาเรียงใหม่ด้วย VBA

? การเลือกข้อมูลที่อยู่ในตารางหลายคอลัมน์หลายบรรทัดมาเรียงใหม่โดยพิจาณาจากค่าในเซลล์ว่าต้องเข้าเงื่อนไขตามที่กำหนดจึงจะนำมาใช้งาน โดยไม่ได้เลือกมาเฉพาะค่าในเซลล์ แต่เลือกคอลัมน์แรกของตารางที่ตรงกับค่าดังกล่าวและบรรทัดที่เป็นหัวคอลัมน์ที่ตรงกับค่าดังกล่าวมาด้วย งานลักษณะนี้หากต้องเลือกด้วยสายตาย่อมจะเสียเวลามาก จำเป็นต้องพึ่งพา VBA เข้ามาช่วยจัดการ ?

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

Sub CollectDataByCondition()
    Dim r As Range, arr(999, 2) As Variant, i As Integer
    Sheets("Result").UsedRange.ClearContents
    With Sheets("Vacancy")
        For Each r In .Range("c2").resize(.UsedRange.Rows.Count, _
            .UsedRange.Column.Count).SpecialCells(xlcelltypecontstants, 1)
            If r.Value < 0 Then
                arr(i, 0) = Cells(1, r.Column).Value
                arr(i, 1) = .Cells(r.Row, 2).Value
                arr(i, 2) = 1
                i = i + 1
            End If
        Next r
        With Sheets("Result")
            .Range("a1:c1").Value = Array("Position", "Store", "Vacancy")
            .Range("a2").Resize(i, 3).Value = arr
        End With
    End With
    MsgBox "Finished", vbInformation
End Sub

Video แสดงการค้นหาข้อมูลที่น้อยกว่า 0

Scroll to Top