
ผมไม่ทราบว่าคุฯเข้าใจที่ผมอธิบายไปไหม และทดลองสูตรที่ผมให้ไปหรือยัง
a1:a10 คือช่วงข้อมูลทึ่ต้องการคีย์ format cell แบบข้อความ และป้องกันการคีย์
ข้อมูลผิดแบบ รายการ ช่วงรายการทีเลือก คือ =$c$1:$c$10
ให้เปลี่ยนเป็นตั้งช่วงชื่อ โดยไปที่ Fomulas > RangeName คลิ๊กสร้างชื่อใหม่ โดยให้ชื่อว่า ID ในแถบสูตรใส่ =Sheet1!$C$1:$C$10 คลิ๊ก ตกลง
คลิ๊กที่เซลล์ A1 ไปที่ DataValidation ให้เลือกแสดงเป็นรายการ ในแถบสูตรคีย์ =ID แล้วกดตกลง จากนั้นคัดลอกรูปแบบเซลล์จาก A1 ลงมาถึง A10
ทดสอบคีย์รหัสที่ไม่ถูกต้อง เช่น 111 โปรแกรมจะฟ้อง
คือจะคีย์อะไรได้ ใน a1:a10 คีย์ได้เฉพาะ 001 002 003 004 005 006 007 008 009 010 เท่านััน ปัญหาตอนนี้คือเครื่องหมายอะไรมันก๋็ล็อคได้หมด +, - , / แต่เครื่องหมาย * กลับคีย์ผ่านแต่ต้องขึ้นต้นด้วย * หรือ 0 เท่านั้น เช่น **1, 01* ,00*, 0*6 ถ้าขึ้นต้นด้วยตัวอื่นเช่น 1*0 , 2**, *11 ก็คีย์ไม่ผ่านเข้าใจว่าเครื่องหมาย * แทนสัญลักษณ์ข้อความ แต่จะให้เปลี่ยน format cell เป็นแแบบอื่นก็ไม่ได้ ไม่ทราบว่ามีวิธีไหนที่แก้ปัญหาได้บ้างครับ
การบังคับไม่ให้คีย์พวกเครื่องหมายเหล่านี้ลงไปด้วย (+)(-)(*)(/) ให้คุณคลุมเซลล์ B1:B10 แล้วก็เข้าไปที่ เข้าเมนู Data > Validationท ช่อง Allow เลือก Custom
ช่อง Formula คีย์สูตร =1-ISNUMBER(FIND("*",B1))&1-ISNUMBER(FIND("+",B1))&1-ISNUMBER(FIND("-",B1))&1-ISNUMBER(FIND("/",B1))
แล้วคลิกปุ่ม OK
ทดสอบคีย์ค่าใน B1:B10 ตามต้องการ สังเกตดูผล
You do not have the required permissions to view the files attached to this post.