
จากที่ถามมาเกี่ยวกับบุคคลในครอบครัวเพิ่มเข้ามาทีหลังนั้น ผมเพิ่ม Code มาให้ตามด้านล่าง ให้สร้างปุ่มแล้ว Assign Macro เพิ่มเติมเข้ามาสำหรับกรณีนี้ครับ
Code: Select all
Sub AdditionalCode()
Dim i As Integer, rt As Range
Dim rs As Range, rtAll As Range
Dim j As Integer, k As Integer
With Sheets("Form")
Set rtAll = .Range(.Range("C" & Rows.Count) _
.End(xlUp).Offset(1, 0), .Range("E" & Rows.Count).End(xlUp) _
.Offset(0, -2))
End With
With Sheets("Database")
i = .Range("A" & Rows.Count).End(xlUp)
j = .Range("B" & Rows.Count).End(xlUp)
End With
k = Sheets("Form").Range("C" & Rows.Count).End(xlUp)
For Each rt In rtAll
i = i + 1: j = j + 1
rt.Offset(0, -2) = i
rt.Offset(0, -1) = j
rt = k
Next rt
End Sub
การค้นหาครอบครัวจากรหัสของบุคคลให้ทำการค้นหาตามเลขที่บัตรก่อน แล้วดูว่าบุคคลนี้รหัสครอบครัวเป็นเลขใด จากนั้นค้นหาด้วยรหัสครอบครัวอีกรอบก็จะได้ข้อมูลตามต้องการ
ส่วนการทำรายงานอย่างที่บอกไปแล้วให้ทำด้วย PivotTable จะสามารถทราบได้ว่าใครยังไม่ย้าย ใครย้ายไปแล้ว ฯลฯ หรืออย่างง่ายที่สุดใช้การ Filter ข้อมูลที่ต้องการจากฐานข้อมูลโดยตรง จะได้ลดการเขียน Code
เนื่องจากผมกำลังจะเดินทางไปปฏิบัติงานต่างจังหวัดจึงไม่สามารถปรับปรุง Code ให้ได้ ถ้าปรับเองไม่ได้ก็ให้ Manual ไปก่อน ด้วยเงื่อนไขที่ค่อนข้างเยอะทั้งที่มีอยู่แล้วและจะเพิ่มเข้ามา อีกทั้งมีเวลาที่จำกัด ผมเห็นว่าไม่จำเป็นต้องทำให้สมบูรณ์ตามที่ต้องการไปทุกอย่าง จะเสียเวลาไปโดยใช่เหตุครับ