Page 1 of 1

ถามครับ วิธีกรอกข้อมูลsheet2 แล้วเข้ามาต่อท้ายแถวข้อมูลล่างส

Posted: Tue Oct 04, 2011 4:13 pm
by sdmania
สมมุติว่า sheet1 มีข้อมูล50แถว

แต่เราจะกรอกข้อมูลที่ sheet2 เมื่อenter อยากให้ข้อมูลที่sheet2 วิ่งไปต่อท้ายแถวข้อมุลล่างสุดของsheet1 ครับ
อยากให้มันมาครั้งเดียว ครั้งละ rowครับ(ถ้ามีคอลัมน์ใดว่าง ก็ให้มันมาทั้งว่างๆนั่นเลยครับ)
code ของผมยังเละเทะครับเลยไม่ได้ส่งมาให้อาจารย์แก้ไขครับ กะว่าขอของอาจารย์ไปแกะดูน่ะครับ :mrgreen:

Re: ถามครับ วิธีกรอกข้อมูลsheet2 แล้วเข้ามาต่อท้ายแถวข้อมูลล

Posted: Tue Oct 04, 2011 6:04 pm
by snasui
:D เละหรือไม่เละก็ส่งมาได้ครับ ส่วนจะแก้ไขปรับปรุงหรือเขียนใหม่ ผมจะพิจารณาเองครับ :mrgreen:

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
:D ลองดู 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
ขอบคุณครับอาจารย์ :mrgreen:
แต่ศิษย์หัวทึบครับรบกวนอาจารย์ช่วยสอนทีละบรรทัดด้วยครับว่าความหมายของแต่ละบรรทัดทำอะไรบ้างครับ :roll:
IntRows = Rows.Count
Set n = Range("A" & IntRows).End(xlUp).Offset(1, 0)
Set sn = n.Offset(0, 1)

ตรงOffset ผมไม่เข้าใจดีนักเลยครับครู หนังสือที่ซื้อมาสอนแต่ vlookup ซะส่วนใหญ่ครับ แหะๆ :(

ถ้าผมจะเก็บข้อมูลคอลัมน์ต่อๆไปครับ ผมควรเพิ่มวิธีเขียนในOffsetอย่างไรครับ :mrgreen:

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)
:D 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
ขอบคุณครับอาจารย์ สูตรใช้ได้แล้วครับ