:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

[VBA] UserForm

ฟอรัมถาม-ตอบปัญหาการใช้งาน Macro และ VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
poipoi
Member
Member
Posts: 164
Joined: Fri May 18, 2012 11:23 am
Contact:

[VBA] UserForm

#1

Post by poipoi »

ปัญหามีอยู่ว่า เวลาที่ผมทำการเลือกค่าในช่อง name เพื่อที่จะบันทึกลงในหน้า sheet3 ในคอลั้ม name (Column G) ไม่สามารถบันทึกค่าได้

จะติด bug แต่หากใน row 2 ผมใส่อะไรไปก็ตามแล้ว มันถึงจะเริ่มบันทึก row ที่ 3 ให้

หากว่าผมจะทำการบันทึกต่อ ใน row 4 แต่มันไม่บันทึกให้ จะบันทึกให้แต่ row 3 แทนครับ

ปล. ผมได้แนบไฟล์ พร้อมโค้ด ที่อยู่ในไฟล์ไว้แล้วครับ

ขอบคุณครับ
Attachments
N' Non.xls
(235 KiB) Downloaded 15 times
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: [VBA] UserForm

#2

Post by snasui »

:D Code สำหรับการหาบรรทัดทีว่างหลังจากมีข้อมูล ดูตัวอย่างตามด้านล่างครับ

Code: Select all

blank = Worksheets("sheet3").Cells(65536, 1).End(xlUp).Row + 1
เป็นการให้วิ่งขึ้นไปด้านบนจนพบเซลล์ที่มีข้อมูลก่อนแล้วค่อยลงมา 1 บรรทัดเพื่อหาเซลล์ว่าง
poipoi
Member
Member
Posts: 164
Joined: Fri May 18, 2012 11:23 am
Contact:

Re: [VBA] UserForm

#3

Post by poipoi »

ตามที่อาจารย์แก้ไขโค้ดให้สามารถใช้งานได้แล้วครับ

แต่...พอผมกดบันทึกเพิ่มมันก็ไม่สามารถบันทึกต่อจากของเก่าได้ครับ

ขอคำชี้แนะด้วยครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: [VBA] UserForm

#4

Post by snasui »

:D แจ้งตัวอย่างข้อมูลที่กรอก และแจ้งมาว่าที่ไม่ได้นั้นติดปัญหาที่บรรทัดใดของ Code ครับ

เราสามารถติดตามการทำงานทีละขั้นของ Code ด้วยการไปที่ Code นั้น ๆ แล้วกดปุ่ม F8 ครับ
poipoi
Member
Member
Posts: 164
Joined: Fri May 18, 2012 11:23 am
Contact:

Re: [VBA] UserForm

#5

Post by poipoi »

ผมไม่สามารถกด F8 เพื่อรันสเตบได้ครับเพราะเป็นการกรอกข้อมูลลง UserForm

เมื่อสักครู่นี้ผมได้ทำการแก้ไขโค้ดและเพิ่มโค้ดเข้าไป

ส่วนในหน้าที่ต้องการให้ข้อมูลไปวางไว้นั้นได้ทำการลิ๊งสูตรเพื่อที่จะได้ไม่ต้องกรอก userform หลายครััง

แต่พอลงกรอก userform แล้วมันไม่บันทึกให้ครับ

ส่วนเรื่องโค้ดนี่ไม่ได้ติดตรงไหนครับ

แค่ไม่เข้าใจว่าทำไมจึงไม่สามารถบันทึกลงไปในหน้า data ได้

ผมได้แนบไฟล์ตัวที่อัพเดทสูตรและโค้ดบางส่วนแล้วครับ

ขอบคุณครับ
Attachments
N' Non.xls
(299.5 KiB) Downloaded 29 times
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: [VBA] UserForm

#6

Post by snasui »

:D การกด F8 สามารถทำได้กับทุก Procedure ไม่ว่าจะผ่าน Userform หรือไม่ เราสามารถนำ Breakpoint เข้ามาช่วยโดยคลิกในตำแหน่งตามภาพ แล้ว Run Code จากนั้นค่อยกด F8 เพื่อดูทีละ Step หากกดในตำแหน่งตามภาพอีกครั้งจะเป็นการปลด Breakpoint ออกไป

ลองปรับ Code เป็นตามด้านล่าง และที่ชีท Data ให้ลบบรรทัดที่ 1899 ทิ้งไป จากนั้นทดสอบ Run Code ดูใหม่ครับ

Code: Select all

Public Sub entry_mode()
    Const name_col = 7
    Const date_col = 2
    Const cid_col = 5
    Const merge_col = 6
    Dim blank As Integer
    blank = Worksheets("Data").Cells(65536, 2).End(xlUp).Row + 1
    With Worksheets("Data")
        .Cells(blank, name_col).Value = Entry_form.namelist.Value
        .Cells(blank, date_col).Value = Entry_form.day.Value
        .Cells(blank, cid_col).Value = Entry_form.cidadd.Value
        .Cells(blank, merge_col).Value = Entry_form.mergeadd.Value
    End With
    MsgBox "Data Record", vbInformation, "Data Record"
End Sub
Attachments
BreakPoint.png
BreakPoint.png (8.56 KiB) Viewed 129 times
poipoi
Member
Member
Posts: 164
Joined: Fri May 18, 2012 11:23 am
Contact:

Re: [VBA] UserForm

#7

Post by poipoi »

ใช้การได้แล้วครับ

ผมก็ไม่ได้ทันดูว่าที่บรรทัด 1899 มีค่าอยู่

ขอบคุณสำหรับคำแนะนำครับอาจารย์
Post Reply