บทความ

กำลังแสดงโพสต์ที่มีป้ายกำกับ isnumeric()

การตรวจสอบตัวเลข ด้วย vba

รูปภาพ
การตรวจสอบว่า ข้อความที่พิมพ์เข้ามาเป็นตัวเลขหรือไม่ เราใช้ฟังก์ชัน isNumeric() เพื่อตรวจสอบ แต่ฟังก์ชันนี้ ยังอาจจะไม่ได้ตรงตามที่เราต้องการมากนัก เนื่องจาก ยังอนุญาตให้มีเครื่องหมาย ต่าง ๆ เช่นคอมม่า เครื่องหมาย + เป็นต้น และที่สำคัญคือ ถ้ามีการใช้ตัวอักษร d หรือ e ผสมกับตัวเลข ก็จะถือว่า เป็นตัวเลขด้วย เช่น 10E14 ฟังก์ชัน isNumeric() จะถือว่า เป็นตัวเลข เพราะ จริง ๆ ก็คือตัวเลขชนิดหนึ่งเหมือนกัน เป็น Scientific Notation แต่จริง ๆ เราต้องการให้ตรวจสอบว่า เป็นตัวเลข ตั้งแต่ 0 ถึง 9 เท่านั้น ไม่ต้องการให้มีเครื่องหมายใด ๆ หรือ ตัวอักษรใด ๆ ทั้งสิ้น  เช่น ต้องการตรวจสอบว่า พิมพ์รหัสไปรษณีย์ โดยไม่มีตัวอักษรใด ๆ ปนเข้ามา หรือไม่ เป็นต้น ในกรณีอย่างนี้ เราต้องเขียนฟังก์ชันให้ตรวจสอบเอง โดยการเปรียบเทียบจากตัวอักษรที่กำหนด ฟังก์ชันที่ใช้ในการเปรียบเทียบ คือ instr() ดังต่อไปนี้ Function IsAllNumber(str As String) As Boolean Dim allowedChar As String     allowedChar = "1234567890"     For i = 1 To Len(str)         If InStr(allowedChar, Mid(str, i, 1)) = 0 Then