PDA

View Full Version : ต้องการแยกคนเกิด แต่ละ พ.ศ.เกิด ไปเพิ่มในชีตที่ได้กำหนดไว้



bannog
19 Jun 2007, 11:14
ต้องการแยกคนเกิด แต่ละ พ.ศ.เกิด ไปเพิ่มในชีตที่ได้กำหนดไว้
เช่น คนเกิด พ.ศ.2533 ก็ให้แยกไปเพิ่มในชีต 2533 และ คนเกิด พ.ศ.2532 ก็ให้แยกไปเพิ่มในชีต 2532

ขอบคุณครับสำหรับคำตอบ

zv735
19 Jun 2007, 14:24
ผมกำหนด Range Name ของแต่ละชีทว่า
Sheet2533 , Sheet2532 , Sheet2531
นะครับ
แล้ววนลูป ให้เอาข้อมูลแต่ละอันไปไว้ในแต่ละชีทครับ
(ผมไม่ได้ใส่ลำดับไว้ให้นะครับ ไม่รู้ว่าต้องการให้ใช้ลำดับเดิมหรือตั้งลำดับใหม่ครับ)
ตาม Code ข้างล่างนะครับ
ถ้าติดขัดตรงไหนถามได้นะครับ
ขอบคุณมากครับผม


For i = 2 To [counta($E:$E)]
Select Case Range("E" & i)
Case 2533
[Sheet2533] = Range("B" & i & ":E" & i).Value
Case 2532
[Sheet2532] = Range("B" & i & ":E" & i).Value
Case 2531
[Sheet2531] = Range("B" & i & ":E" & i).Value
End Select
Next i

bannog
19 Jun 2007, 14:57
โอ้...สุดยอดครับ ตรงกับความต้องการเลยครับ ขอบคุณมากครับ ถ้าใส่ลำดับใหม่ถือว่าสมบูรณ์ 100% เลยครับ :D:D

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

zv735
19 Jun 2007, 17:14
ทำได้ครับ
ย้าย Code ไปไว้ที่
Private Sub Worksheet_Change(ByVal Target As Range)
ครับ
แล้วเอา For Loop ออกครับ


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 5 Then Exit Sub
Select Case Target.Value
Case 2533
[Sheet2533] = Range("B" & Target.Row & ":E" & Target.Row).Value
Case 2532
[Sheet2532] = Range("B" & Target.Row & ":E" & Target.Row).Value
Case 2531
[Sheet2531] = Range("B" & Target.Row & ":E" & Target.Row).Value
End Select
End Sub


ขอบคุณมากมากครับ