Page 1 of 1

อยากทราบวิธี lock format อ่ะคะ

Posted: Wed Jan 12, 2011 12:10 am
by bigoaefe41
คือว่า ต้องการที่จะทำ cell นั้น ที่เลือก format เป็น d/m/yyyy h:mm (ช่องสีเหลือง) ให้แบบว่าเวลาที่เราพิมพ์ ตัวหนังสือไปแล้วมัน มีข้อความเด้งว่าเราพิมพ์ผิด หรือ ไม่ยอมให้พิมพ์อ่ะค่ะ ต้องเขียนยังไงอ่ะค่ะ จะใช้ สูตร try catch ก็ใช้ไม่ได้อ่ะ เลยไม่รู็จะทำยังไงดี :(

Re: อยากทราบวิธี lock format อ่ะคะ

Posted: Wed Jan 12, 2011 12:38 am
by snasui
:D ลองตามนี้ครับ

1. คลุม B6:B25
2. คลิกเมนู Data > Validation
3. ที่ Allow: เลือก Custom
4. ที่ Formula: คีย์ =ISNUMBER(--SUBSTITUTE(B5,".",":"))

รูปแบบที่คีย์มาในไฟล์กับที่ถามมาในฟอรั่มนั้นต่างกันสิ้นเชิงครับ เนื่องจากใช้จุดคั่นระหว่างชั่วโมงกับนาทีซึ่งจะกลายเป็น Text และจำเป็นต้องแปลงให้มาเป็น Number ด้วยสูตรด้านบน แต่หากคีย์คั่นด้วยโคล่อน สูตรตามข้อ 4 จะเป็น =ISNUMBER(B5) เป็นการเช็คว่าเป็นตัวเลขหรือไม่ ที่ตอบมานี้หากคีย์ตัวเลขอื่นมาแม้จะไม่ใช่วันที่ก็จะไม่มีการดักครับ หากดักตัวเลขอื่นด้วยให้แจ้งมาใหม่ครับ :mrgreen:

Re: อยากทราบวิธี lock format อ่ะคะ

Posted: Wed Jan 12, 2011 11:08 am
by bigoaefe41
ขอบคุณมากๆๆเลลยค่ะ


และ อยากจะขอถามเรื่อง การ lock cell แต่ตอนนี้มีปัญาที่ว่าเมื่อทำการ lock cell ได้แล้ว แต่ marco ไม่สามารถที่จะทำงานได้ เลยอยากจะขอสอบถาม ว่าต้องทำการ lock อยากไรค่ะ ถึงจะทำให้ macro สามารถที่จะทำงานได้ด้วยค่ะ เนื่องจากในโปรแกรมได้ตั้ง macro ให้เป็น active เสมออ่ะค่ะ

ขอบคุณล่วงหน้าค่ะ

Re: อยากทราบวิธี lock format อ่ะคะ

Posted: Wed Jan 12, 2011 11:48 am
by bigoaefe41
ขอโทษนะคะพอดี อยากได้แบบตาม form เลยอะคะ ว่าให้พิมพ์ได้ตาม format "dd/mm/yyyy h:mm" นี้เท่านั้นอะคะ ให้พิมพ์ตัวอักษรไม่ได้

Re: อยากทราบวิธี lock format อ่ะคะ

Posted: Wed Jan 12, 2011 1:40 pm
by snasui
:D ส่งตัวอย่างไฟล์ที่เป็นปัญหามาด้วยครับ ที่ส่งมานี้เฉพาะเรื่อง Format ผมดูแล้วไม่มี Macro จะได้ทราบว่าได้กำหนดเรื่อง Lock และ Macro ไว้อย่างไร

การดัก Format กรณีคีย์เป็นวันที่และเวลาเป็นตัวเลข (Number) ทำได้ยากครับ เพราะไม่ว่าคีย์ตัวเลขใดไปก็สามารถมี Format เป็นวันที่และเวลาได้ทั้งนั้น ยกเว้นตัวเลขนั้นเมื่อแปลงเป็นวันที่และเวลาแล้วเกินวันที่ 31/12/9999 ซึ่งเป็นข้อจำกัดของโปรแกรมที่จะไม่สามารถคีย์วันที่ได้เกินกว่านี้

ปกติการดักการคีย์วันที่และเวลาด้วย Validation จะดักด้วย Date หรือ Time และจะต้องระบุช่วงให้ด้วยว่าให้คีย์ไม่น้อยกว่าวันใด ไม่เกินกว่าวันใด

การเข้าเมนูก็ตามความเห็นก่อน ช่อง Allow เลือก Date จากนั้นเลือก Between แล้วกรอกช่วงวันที่

แต่หากกำหนด Format ช่วงข้อมูลที่คีย์ให้เป็น Text แล้วให้ผู้ใช้คีย์ตามรูปแบบนั้น อันนี้สามารถดักด้วย Validation ได้หลายแบบ สามารถใช้ฟังก์ชั่นดักจับจำนวนอักขระที่ต้องคีย์ หรือหาจำนวนเครื่องหมาย / ร่วมกับการนับจำนวนอักขระเป็นต้น

ยกตัวอย่างกรณีดักด้วยจำนวนอักขระสามารถเข้าเมนูตามความเห็นก่อนหน้า > เลือก Custom > ช่อง Formula คีย์

=Len(B5)=15