Page 1 of 1
ถามครับ วิธีกรอกข้อมูลsheet2 แล้วเข้ามาต่อท้ายแถวข้อมูลล่างส
Posted: Tue Oct 04, 2011 4:13 pm
by sdmania
สมมุติว่า sheet1 มีข้อมูล50แถว
แต่เราจะกรอกข้อมูลที่ sheet2 เมื่อenter อยากให้ข้อมูลที่sheet2 วิ่งไปต่อท้ายแถวข้อมุลล่างสุดของsheet1 ครับ
อยากให้มันมาครั้งเดียว ครั้งละ rowครับ(ถ้ามีคอลัมน์ใดว่าง ก็ให้มันมาทั้งว่างๆนั่นเลยครับ)
code ของผมยังเละเทะครับเลยไม่ได้ส่งมาให้อาจารย์แก้ไขครับ กะว่าขอของอาจารย์ไปแกะดูน่ะครับ

Re: ถามครับ วิธีกรอกข้อมูลsheet2 แล้วเข้ามาต่อท้ายแถวข้อมูลล
Posted: Tue Oct 04, 2011 6:04 pm
by snasui

เละหรือไม่เละก็ส่งมาได้ครับ ส่วนจะแก้ไขปรับปรุงหรือเขียนใหม่ ผมจะพิจารณาเองครับ

Re: ถามครับ วิธีกรอกข้อมูลsheet2 แล้วเข้ามาต่อท้ายแถวข้อมูลล
Posted: Wed Oct 05, 2011 4:57 pm
by sdmania
รบกวนอาจารย์ ช่วยบอกทีครับควรแก้อย่างไรดีครับ(vba)
ในไฟล์ตัวอย่าง เมื่อจะsave ผมใช้ ctrl+s เลยครับ
ผมทดสอบปิด แล้วเปิดใหม่ เมื่อเรากรอกข้อมูลใหม่ มันไปที่ name ไปที่a1 surname ไปที่ a2 ครับ
รบกวนชี้แนะด้วยครับ
Re: ถามครับ วิธีกรอกข้อมูลsheet2 แล้วเข้ามาต่อท้ายแถวข้อมูลล
Posted: Wed Oct 05, 2011 5:20 pm
by snasui

ลองดู Code ตามด้านล่างครับ
Code: Select all
Private Sub btnAdd_Click()
Dim IntRows As Long
Dim n As Range, sn As Range
IntRows = Rows.Count
Set n = Range("A" & IntRows).End(xlUp).Offset(1, 0)
Set sn = n.Offset(0, 1)
n = txtName.Text
sn = txtSurname.Text
End Sub
Re: ถามครับ วิธีกรอกข้อมูลsheet2 แล้วเข้ามาต่อท้ายแถวข้อมูลล
Posted: Wed Oct 05, 2011 7:47 pm
by sdmania
ขอบคุณครับอาจารย์
แต่ศิษย์หัวทึบครับรบกวนอาจารย์ช่วยสอนทีละบรรทัดด้วยครับว่าความหมายของแต่ละบรรทัดทำอะไรบ้างครับ
IntRows = Rows.Count
Set n = Range("A" & IntRows).End(xlUp).Offset(1, 0)
Set sn = n.Offset(0, 1)
ตรงOffset ผมไม่เข้าใจดีนักเลยครับครู หนังสือที่ซื้อมาสอนแต่ vlookup ซะส่วนใหญ่ครับ แหะๆ
ถ้าผมจะเก็บข้อมูลคอลัมน์ต่อๆไปครับ ผมควรเพิ่มวิธีเขียนในOffsetอย่างไรครับ

Re: ถามครับ วิธีกรอกข้อมูลsheet2 แล้วเข้ามาต่อท้ายแถวข้อมูลล
Posted: Wed Oct 05, 2011 7:53 pm
by snasui
sdmania wrote:IntRows = Rows.Count
Set n = Range("A" & IntRows).End(xlUp).Offset(1, 0)
Set sn = n.Offset(0, 1)

IntRows = Rows.Count
หมายถึงกำหนดให้ตัวแปร IntRows มีค่าเท่ากับบรรทัดทั้งหมดที่มีครับ
Set n = Range("A" & IntRows).End(xlUp).Offset(1, 0)
หมายถึงกำหนดให้ตัวแปร n มีค่าเท่ากับ
ค่าที่ถัดจากค่าสุดท้ายในคอลัมน์ A ลงไปด้านล่าง 1 บรรทัด
Set sn = n.Offset(0, 1)
หมายถึงกำหนดให้ตัวแปร sn มีค่าถัดจากตัวแปร n ไปทางขวามือ 1 คอลัมน์
n.Offset(x,y) หมายถึง การกำหนดตำแหน่ง
ถัดจาก n ไป x บรรทัด y คอลัมน์
ทีนี้จะให้
ถัดไปทางขวาเท่าไรก็ต้องปรับที่ค่า
y ครับเพราะเป็นตัวแสดงถึงตำแหน่งคอลัมน์
Re: ถามครับ วิธีกรอกข้อมูลsheet2 แล้วเข้ามาต่อท้ายแถวข้อมูลล
Posted: Thu Oct 20, 2011 11:05 am
by sdmania
ขอบคุณครับอาจารย์ สูตรใช้ได้แล้วครับ