ไปยังเนื้อหาหลัก

จะป้องกันไม่ให้อักขระพิเศษเข้ามาใน Excel ได้อย่างไร?

ในบางกรณีเราแค่ต้องการป้อนตัวอักษรหรือตัวเลขในเซลล์และป้องกันไม่ให้พิมพ์อักขระพิเศษเช่น @ # $% & และอื่น ๆ มีฟังก์ชันใดบ้างใน Excel ที่ป้องกันไม่ให้อักขระพิเศษเข้ามาเมื่อเราแทรกค่า?

ป้องกันไม่ให้มีการป้อนอักขระพิเศษด้วยการตรวจสอบข้อมูล

ป้องกันไม่ให้อักขระพิเศษป้อนด้วยรหัส VBA

ป้องกันไม่ให้อักขระพิเศษเข้ามาด้วย Kutools for Excel ความคิดที่ดี 3


ป้องกันไม่ให้มีการป้อนอักขระพิเศษด้วยการตรวจสอบข้อมูล

การตรวจสอบข้อมูลของ Excel สามารถช่วยให้คุณป้อนเฉพาะค่าตัวอักษรและตัวเลขเท่านั้น กรุณาดำเนินการดังต่อไปนี้:

1. เลือกช่วงที่คุณต้องการป้องกันไม่ให้อักขระพิเศษเข้ามา

2. จากนั้นคลิก ข้อมูล > การตรวจสอบข้อมูล > การตรวจสอบข้อมูลดูภาพหน้าจอ:

doc- ป้องกันอักขระ -1

3. ใน การตรวจสอบข้อมูล คลิกตกลง การตั้งค่า และเลือก ประเพณี จาก อนุญาต รายการแบบเลื่อนลงจากนั้นป้อนสูตรนี้ =ISNUMBER(SUMPRODUCT(SEARCH(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"))) เข้าไปใน สูตร กล่องข้อความดูภาพหน้าจอ:

หมายเหตุA1 ระบุเซลล์แรกของช่วงที่คุณเลือก (จากซ้ายไปขวา)

doc- ป้องกันอักขระ -1

4. จากนั้นคลิก OK เพื่อปิดกล่องโต้ตอบนี้และตอนนี้เมื่อคุณป้อนค่าที่มีอักขระพิเศษในคอลัมน์ที่ระบุคุณได้ใช้ตัวเลือกนี้คุณจะได้รับข้อความเตือนต่อไปนี้

doc- ป้องกันอักขระ -1


ป้องกันไม่ให้อักขระพิเศษป้อนด้วยรหัส VBA

รหัส VBA ต่อไปนี้ยังช่วยคุณป้องกันอักขระพิเศษขณะป้อนค่าข้อความ

1. กด ALT + F11 และจะเปิดไฟล์ หน้าต่าง Microsoft Visual Basic for Applications.

2. จากนั้นเลือกแผ่นงานที่คุณใช้จากด้านซ้าย นักสำรวจโครงการดับเบิลคลิกเพื่อเปิดไฟล์ โมดูลจากนั้นคัดลอกและวางโค้ด VBA ต่อไปนี้ลงในช่องว่าง โมดูล:

รหัส VBA: ป้องกันไม่ให้มีการป้อนอักขระพิเศษใน Excel

Private Const FCheckRgAddress As String = "A1:A100"
Private Sub Worksheet_Change(ByVal Target As Range)
'Update 20140905
    Dim xChanged As Range
    Dim xRg As Range
    Dim xString As String
    Dim sErrors As String
    Dim xRegExp As Variant
    Dim xHasErr As Boolean
    Set xChanged = Application.Intersect(Range(FCheckRgAddress), Target)
    If xChanged Is Nothing Then Exit Sub
    Set xRegExp = CreateObject("VBScript.RegExp")
    xRegExp.Global = True
    xRegExp.IgnoreCase = True
    xRegExp.Pattern = "[^0-9a-z]"
    For Each xRg In xChanged
        If xRegExp.Test(xRg.Value) Then
            xHasErr = True
            Application.EnableEvents = False
            xRg.ClearContents
            Application.EnableEvents = True
        End If
    Next
    If xHasErr Then MsgBox "These cells had invalid entries and have been cleared:"
End Sub

doc- ป้องกันอักขระ -1

หมายเหตุ: ในโค้ดด้านบนคุณสามารถเปลี่ยนช่วงได้ A1: A100 of Private Const FCheckRgAddress เป็น String = "A1: A100" สคริปต์ไปยังช่วงของคุณเองที่คุณต้องการป้องกันอักขระพิเศษ

3. จากนั้นบันทึกและปิดรหัสนี้และตอนนี้เมื่อคุณป้อนค่าข้อความด้วยอักขระพิเศษบางตัวในช่วง A1: A100 ค่าของคุณจะถูกล้างพร้อมกันและคุณจะได้รับข้อความเตือนต่อไปนี้

doc- ป้องกันอักขระ -1


ป้องกันไม่ให้อักขระพิเศษเข้ามาด้วย Kutools for Excel

จริงๆแล้วถ้าคุณมี Kutools สำหรับ Excel - เครื่องมือที่มีประโยชน์และใช้งานได้หลากหลายคุณสามารถป้องกันการพิมพ์อักขระพิเศษได้อย่างรวดเร็วด้วยการเลือก ป้องกันการพิมพ์ ยูทิลิตี้โดยการตรวจสอบเพียงครั้งเดียว

Kutools สำหรับ Excel, ที่มีมากกว่า 300 ฟังก์ชั่นที่มีประโยชน์ทำให้งานของคุณง่ายขึ้น 

หลังจากการติดตั้ง Kutools สำหรับ Excel โปรดทำดังนี้ :(ดาวน์โหลด Kutools for Excel ได้ฟรีทันที!)

1. เลือกตัวเลือกที่คุณต้องการป้องกันไม่ให้พิมพ์อักขระพิเศษแล้วคลิก Kutools > ป้องกันการพิมพ์ > ป้องกันการพิมพ์. ดูภาพหน้าจอ:
doc ป้องกันอักขระ 10

2 ใน ป้องกันการพิมพ์ โต้ตอบตรวจสอบ ป้องกันไม่ให้พิมพ์อักขระพิเศษ ตัวเลือก ดูภาพหน้าจอ:
doc ป้องกันอักขระ 7

3 คลิก Okและกล่องโต้ตอบจะปรากฏขึ้นเพื่อเตือนคุณว่าจะลบการตรวจสอบข้อมูลหากใช้ยูทิลิตี้นี้แล้วคลิก ใช่ เพื่อไปที่กล่องโต้ตอบถัดไปมันจะเตือนคุณว่ายูทิลิตี้ได้ทำงานในส่วนนี้แล้ว ดูภาพหน้าจอ:
doc ป้องกันอักขระ 8

4 คลิก OK เพื่อปิดกล่องโต้ตอบและจากนี้ไปกล่องโต้ตอบคำเตือนจะปรากฏขึ้นเมื่อคุณพยายามป้อนอักขระพิเศษในส่วนที่เลือก
doc ป้องกันอักขระ 9

เคล็ดลับถ้าคุณต้องการหยุดพิมพ์ค่าที่ซ้ำกันในคอลัมน์โปรดลองใช้ Kutools for Excel's ป้องกันการทำซ้ำ ดังที่แสดงในภาพหน้าจอต่อไปนี้ ฟังก์ชั่นเต็มรูปแบบโดยไม่มีข้อ จำกัด ใน 30 วัน โปรดดาวน์โหลดและทดลองใช้ฟรีทันที

doc ป้องกันการทำซ้ำ doc kutools ป้องกันการพิมพ์ 2


บทความที่เกี่ยวข้อง:

วิธีป้องกันการป้อนค่าด้วยช่องว่างใน Excel

วิธีป้องกันไม่ให้รายการซ้ำกันในคอลัมน์ใน Excel

สุดยอดเครื่องมือเพิ่มผลผลิตในสำนักงาน

🤖 Kutools AI ผู้ช่วย: ปฏิวัติการวิเคราะห์ข้อมูลโดยยึดตาม: การดำเนินการที่ชาญฉลาด   |  สร้างรหัส  |  สร้างสูตรที่กำหนดเอง  |  วิเคราะห์ข้อมูลและสร้างแผนภูมิ  |  เรียกใช้ฟังก์ชัน Kutools...
คุณสมบัติยอดนิยม: ค้นหา เน้น หรือระบุรายการที่ซ้ำกัน   |  ลบแถวว่าง   |  รวมคอลัมน์หรือเซลล์โดยไม่สูญเสียข้อมูล   |   รอบโดยไม่มีสูตร ...
การค้นหาขั้นสูง: VLookup หลายเกณฑ์    VLookup หลายค่า  |   VLookup ข้ามหลายแผ่น   |   การค้นหาที่ไม่ชัดเจน ....
รายการแบบเลื่อนลงขั้นสูง: สร้างรายการแบบหล่นลงอย่างรวดเร็ว   |  รายการแบบหล่นลงขึ้นอยู่กับ   |  เลือกหลายรายการแบบหล่นลง ....
ผู้จัดการคอลัมน์: เพิ่มจำนวนคอลัมน์เฉพาะ  |  ย้ายคอลัมน์  |  สลับสถานะการมองเห็นของคอลัมน์ที่ซ่อนอยู่  |  เปรียบเทียบช่วงและคอลัมน์ ...
คุณสมบัติเด่น: กริดโฟกัส   |  มุมมองการออกแบบ   |   บาร์สูตรใหญ่    สมุดงานและตัวจัดการชีต   |  ห้องสมุดทรัพยากร (ข้อความอัตโนมัติ)   |  เลือกวันที่   |  รวมแผ่นงาน   |  เข้ารหัส/ถอดรหัสเซลล์    ส่งอีเมลตามรายการ   |  ซุปเปอร์ฟิลเตอร์   |   ตัวกรองพิเศษ (กรองตัวหนา/ตัวเอียง/ขีดทับ...) ...
ชุดเครื่องมือ 15 อันดับแรก12 ข้อความ เครื่องมือ (เพิ่มข้อความ, ลบอักขระ, ... )   |   50 + แผนภูมิ ประเภท (แผนภูมิ Gantt, ... )   |   40+ ใช้งานได้จริง สูตร (คำนวณอายุตามวันเกิด, ... )   |   19 การแทรก เครื่องมือ (ใส่ QR Code, แทรกรูปภาพจากเส้นทาง, ... )   |   12 การแปลง เครื่องมือ (ตัวเลขเป็นคำ, การแปลงสกุลเงิน, ... )   |   7 ผสานและแยก เครื่องมือ (แถวรวมขั้นสูง, แยกเซลล์, ... )   |   ... และอื่น ๆ

เพิ่มพูนทักษะ Excel ของคุณด้วย Kutools สำหรับ Excel และสัมผัสประสิทธิภาพอย่างที่ไม่เคยมีมาก่อน Kutools สำหรับ Excel เสนอคุณสมบัติขั้นสูงมากกว่า 300 รายการเพื่อเพิ่มประสิทธิภาพและประหยัดเวลา  คลิกที่นี่เพื่อรับคุณสมบัติที่คุณต้องการมากที่สุด...

รายละเอียด


แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
Comments (12)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Pessoal, segue formul em portugês com a quantidade de caracteres limitada a 7:

=E(ÉNÚM(SOMARPRODUTO(LOCALIZAR(EXT.TEXTO(A1;LIN(INDIRETO("1:"&NÚM.CARACT(A1)));1);"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ ")));NÚM.CARACT(A1)<8)
This comment was minimized by the moderator on the site
Excelente solucion. como agregas las comillas (") para que sean admitidas?
This comment was minimized by the moderator on the site
Hello herber,

Glad to help. Using the first method, you can use this formula in data validation:
=ISNUMBER(SUMPRODUCT(SEARCH(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"&CHAR(34))))

The CHAR function takes the ASCII value and returns the corresponding character value. The ASCII value for a double quote is 34. So a double quote will be allowed. Please have a try.

Sincerely,
Mandy
This comment was minimized by the moderator on the site
How to repeat this in other columns?
This comment was minimized by the moderator on the site
When I use your VBA code in excel 2013 it will open up debug option and freezes
This comment was minimized by the moderator on the site
Hi, WilY, if it pops out a dialog as below screenshot shown, just click Yes then OK to enable the code. This issue appears in Excel 2016, too.
This comment was minimized by the moderator on the site
What if i need to prevent in a single cell typing certain characters in combination with length of the text?

For example, i want to prevent the text to be between 5-16 caharacters in comination with certain character prevention? Any advice?
This comment was minimized by the moderator on the site
Maybe you can try the Data Validation function to limit the text length. See screenshot:
This comment was minimized by the moderator on the site
The solution with Data Validation is almost perfect. But I'm able to put "*" character the such protected field. Any advice? Many thanks Pavel
This comment was minimized by the moderator on the site
Instead of SEARCH function try using FIND: =ISNUMBER(SUMPRODUCT(FIND(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")))
This comment was minimized by the moderator on the site
how to set length limit ? i mean if i want to set only 12 character or number
This comment was minimized by the moderator on the site
Hello, raj,
To solve your problem, please apply the below formula:
=AND(ISNUMBER(SUMPRODUCT(FIND(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"))),LEN(A1)=12)


Please have a try, hope it can help you!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations