การปรับปรุงข้อมูลพร้อมกันหลายรายการด้วย VBA

กรณีของการรวบรวมข้อมูลเช่นการทำงบประมาณจำปี ในระหว่างการรวบรวมข้อมูลมักจะมีการเปลี่ยนแปลงข้อมูลได้เสมอ การเปลี่ยนแปลงเพียงไม่กี่รายการย่อมไม่ส่งผลกระทบมากนัก แต่หากมีการเปลี่ยนแปลงหลาย ๆ รายการพร้อมกันทีเดียวจะเกิดความยุ่งยากลำบากแก่ผู้รวบรวมขึ้นทันที

Video ด้านล่างนี้แสดงการปรับปรุงเปลี่ยนแปลงข้อมูลพร้อมกันทีเดียวหลายรายการ ลดความผิดพลาดในการค้นหาด้วยสายตา เหมาะกับการเปลี่ยนแปลงจำนวนมาก ๆ ทำให้ประหยัดเวลาได้มหาศาล สามารถเปลี่ยนแปลงได้บ่อยครั้งเท่าที่ต้องการโดยไม่ส่งผลกระทบให้เกิดความยุ่งยากลำบากใจแก่ผู้รวบรวมข้อมูล โดยมีตัวอย่าง Code ตามด้านล่างครับ ?

Sub UpdateDataMultipleRecord()
    Dim rt As Range, rs As Range
    Dim d As Object, t As Variant
    
    Set d = CreateObject("Scripting.Dictionary")
    
    With Sheets("Sheet1")
        For Each rs In .Range("b2", .Range("b" & .Rows.Count).End(xlUp))
            d.Add Key:=rs.Value, Item:=rs.Offset(0, 1).Value & "|" & _
                rs.Offset(0, 2).Value
        Next rs
    End With
    With Sheets("Database")
        For Each rt In .Range("b2", .Range("b" & .Rows.Count).End(xlUp))
            If d.Exists(rt.Value) Then
                t = Split(d.Item(rt.Value), "|")
                rt.Offset(0, 1).Value = CLng(t(0))
                rt.Offset(0, 2).Value = CLng(t(1))
            End If
        Next rt
    End With
    MsgBox "Finish", vbInformation
End Sub

Video แสดงการเปลี่ยนแปลงข้อมูลพร้อมกันหลายรายการ

Scroll to Top