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