snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Panuwat
Member
Posts: 82 Joined: Thu Feb 03, 2011 1:05 pm
#1
Post
by Panuwat » Wed May 18, 2011 10:30 pm
เรียนท่านอาจารย์ครับ ผมมีปัญหาอยากเรียนถามอาจารย์ และอยากให้ท่านอาจารย์ช่วยแก้ไข ตามไฟล์แนบครับ
คือว่า ถ้าเราต้องการให้ User คีย์ข้อมูลในช่องสำหรับกรอกข้อมูลได้จำนวน 254 ตัวอักษร เนื่องจากต้องการ Export ข้อมูลไปทำงานในโปรแกรมอื่น โดยให้มีการนับตัวอักษรและเมื่อ User คีย์ข้อมูลตัวที่ 255 ก็ให้ Message เตือน แล้ว เคอร์เซอร์เด้งไปช่องถัดไปครับ
ขอแสดงความนับถือ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30758 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#2
Post
by snasui » Wed May 18, 2011 11:32 pm
สามารถใช้ Validation และการ Protect มาช่วยได้ครับ
ผมได้ทำตัวอย่างมาให้แล้วในไฟล์แนบ
ให้ลองตามนี้ เพื่อศึกษาขั้นตอนครับ
1. ทดลองกดแป้น Enter จะเห็นว่าโปรแกรมจะวิ่งไปมาแค่ 2 เซลล์ การทำเช่นนี้จะต้องใช้การ Protect เข้ามาช่วยโดย
เลือกเซลล์ B2 และ B4 แล้วกดแป้น Ctrl+1 > แถบ Protection > ปลดเครื่องหมายที่ Locked
เข้าเมนู Tools > Protection > Protect Sheet > ตรง Allow all users of this worksheet to: ให้ปลดเครื่องหมายที่ Select locked cells
2. เข้าเมนู Tools > Protection > Unprotect Sheet เพื่อยกเลิกการป้องกันเพื่อดูการกำหนด Validation สามารถดูการกำหนดค่าได้โดย
คลิก B2
เข้าเมนู Data > Validation > สังเกตการกำหนดค่า
You do not have the required permissions to view the files attached to this post.
Panuwat
Member
Posts: 82 Joined: Thu Feb 03, 2011 1:05 pm
#3
Post
by Panuwat » Wed May 18, 2011 11:40 pm
ขอบคุณครับอาจารย์ แต่ถ้าผมต้องการให้แสดงจำนวนนับแบบ Real time คือทันที่ที่คีย์ตัวอักษรก็จะนับ 1..2..3... ไปเรื่อยๆ จะต้องทำแบบไหนครับ
ขอแสดงความนับถือ
snasui
Site Admin
Posts: 30758 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#4
Post
by snasui » Wed May 18, 2011 11:58 pm
โดยความสามารถปกติไม่สามารถทำได้ครับ จะต้องคีย์ให้เสร็จก่อนถึงจะนับได้ หากจะพอทำได้คงต้องพึง VBA ซึ่งต้องใช้ Onkey เข้ามาช่วยเช่นตาม Link นี้
http://www.snasui.com/viewtopic.php?p=6021#p6021 แต่ก็ไม่ Support การคีย์ภาษาไทย
Panuwat
Member
Posts: 82 Joined: Thu Feb 03, 2011 1:05 pm
#5
Post
by Panuwat » Thu May 19, 2011 12:03 am
ขอบพระคุณอาจารย์มากครับ