Note: The other languages of the website are Google-translated. Back to English
ล็อกอิน  \/ 
x
or
x
สมัครสมาชิก  \/ 
x

or

วิธีลบอักขระที่ไม่ใช่ตัวเลขออกจากเซลล์ใน Excel

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

ลบอักขระที่ไม่ใช่ตัวเลขด้วยรหัส VBA

เครื่องมือที่มีประโยชน์ในการลบอักขระที่ไม่ใช่ตัวเลขได้ด้วยคลิกเดียว


ลบอักขระที่ไม่ใช่ตัวเลขด้วยรหัส VBA

หากต้องการลบอักขระที่ไม่ใช่ตัวเลขออกจากช่วงที่มีรหัส VBA โปรดทำดังนี้:

1. คลิก ผู้พัฒนา > ของ Visual Basic เพื่อเปิด Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง. ใน Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่างคลิก สิ่งที่ใส่เข้าไป > โมดูลจากนั้นคัดลอกและวางรหัสต่อไปนี้ลงในโมดูล:

VBA: ลบอักขระที่ไม่ใช่ตัวเลขทั้งหมด

Sub RemoveNotNum()
'Updateby Extendoffice
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each Rng In WorkRng
    xOut = ""
    For i = 1 To Len(Rng.Value)
        xTemp = Mid(Rng.Value, i, 1)
        If xTemp Like "[0-9]" Then
            xStr = xTemp
        Else
            xStr = ""
        End If
        xOut = xOut & xStr
    Next i
    Rng.Value = xOut
Next
End Sub

2. จากนั้นคลิกปุ่ม ปุ่มเพื่อเรียกใช้รหัสในป๊อปอัพ KutoolsforExcel กล่องโต้ตอบเลือกช่วงที่มีอักขระที่ไม่ใช่ตัวเลขที่คุณต้องการลบจากนั้นคลิกที่ไฟล์ OK ปุ่ม. ดูภาพหน้าจอ:

doc ลบอักขระที่ไม่ใช่ตัวเลข 1 สำเนา

3. จากนั้นอักขระที่ไม่ใช่ตัวเลขทั้งหมดในช่วงที่เลือกจะถูกลบออก

doc ลบอักขระที่ไม่ใช่ตัวเลข 2

หากตัวเลขที่มีจุดทศนิยมคุณสามารถใช้ VBA ต่อไปนี้:

Sub RemoveNotNum()
'Updateby Extendoffice
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each Rng In WorkRng
    xOut = ""
    For i = 1 To Len(Rng.Value)
        xTemp = Mid(Rng.Value, i, 1)
        If xTemp Like "[0-9.]" Then
            xStr = xTemp
        Else
            xStr = ""
        End If
        xOut = xOut & xStr
    Next i
    Rng.Value = xOut
Next
End Sub

คุณสามารถดูผลลัพธ์ตามภาพด้านล่างที่แสดง:

doc ลบอักขระที่ไม่ใช่ตัวเลข 3


เครื่องมือที่มีประโยชน์ในการลบอักขระที่ไม่ใช่ตัวเลขได้ด้วยคลิกเดียว

สำหรับการลบอักขระที่ไม่ใช่ตัวเลขในช่วง Kutools สำหรับ Excel's ลบอักขระ ยูทิลิตี้สามารถทำได้ด้วยคลิกเดียว

Kutools สำหรับ Excel : ด้วย Add-in ของ Excel ที่มีประโยชน์มากกว่า 300 รายการทดลองใช้ฟรีโดยไม่มีข้อ จำกัด ใน 30 วัน. 

หลังจากการติดตั้ง Kutools สำหรับ Excelโปรดดำเนินการดังนี้:

1. เน้นช่วงที่คุณต้องการลบอักขระที่ไม่ใช่ตัวเลข คลิก Kutools > ข้อความ > ลบอักขระ.

doc ลบอักขระที่ไม่ใช่ตัวเลข 4

2. ใน ลบอักขระ ให้ทำเครื่องหมายที่ ไม่ใช่ตัวเลข ตัวเลือกใน ลบอักขระ แล้วคลิกไฟล์ OK or ใช้ ปุ่ม. และอักขระที่ไม่ใช่ตัวเลขจะถูกลบออกจากการเลือกทันที ดูภาพหน้าจอ:

doc ลบอักขระที่ไม่ใช่ตัวเลข 5

คลิกเพื่อดาวน์โหลด Kutools สำหรับ Excel และทดลองใช้ฟรีทันที!

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ ลบอักขระ ของ Kutools for Excel โปรดไปที่ ลบคำอธิบายคุณสมบัติของตัวละคร


การสาธิต: ลบอักขระที่เป็นตัวเลขตัวอักษรไม่สามารถพิมพ์ได้หรือตัวอักษรและตัวเลขคละกันออกจากเซลล์

Kutools สำหรับ Excel: ด้วย Add-in ของ Excel ที่มีประโยชน์มากกว่า 300 รายการให้ทดลองใช้ฟรีโดยไม่มีข้อ จำกัด ใน 30 วัน ดาวน์โหลดและทดลองใช้ฟรีทันที!

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


เครื่องมือเพิ่มประสิทธิภาพการทำงานในสำนักงานที่ดีที่สุด

Kutools สำหรับ Excel แก้ปัญหาส่วนใหญ่ของคุณและเพิ่มผลผลิตของคุณได้ถึง 80%

  • นำมาใช้ใหม่: ใส่อย่างรวดเร็ว สูตรที่ซับซ้อนแผนภูมิ และสิ่งที่คุณเคยใช้มาก่อน เข้ารหัสเซลล์ ด้วยรหัสผ่าน; สร้างรายชื่อผู้รับจดหมาย และส่งอีเมล ...
  • ซุปเปอร์ฟอร์มูล่าบาร์ (แก้ไขข้อความและสูตรหลายบรรทัดได้อย่างง่ายดาย); การอ่านเค้าโครง (อ่านและแก้ไขเซลล์จำนวนมากได้อย่างง่ายดาย); วางลงในช่วงที่กรองแล้ว...
  • ผสานเซลล์ / แถว / คอลัมน์ โดยไม่สูญเสียข้อมูล แยกเนื้อหาของเซลล์ รวมแถว / คอลัมน์ที่ซ้ำกัน... ป้องกันเซลล์ซ้ำ; เปรียบเทียบช่วง...
  • เลือกซ้ำหรือไม่ซ้ำ แถว; เลือกแถวว่าง (เซลล์ทั้งหมดว่างเปล่า); Super Find และ Fuzzy Find ในสมุดงานจำนวนมาก สุ่มเลือก ...
  • สำเนาถูกต้อง หลายเซลล์โดยไม่เปลี่ยนการอ้างอิงสูตร สร้างการอ้างอิงอัตโนมัติ ถึงหลายแผ่น ใส่สัญลักษณ์แสดงหัวข้อย่อย, กล่องกาเครื่องหมายและอื่น ๆ ...
  • แยกข้อความ, เพิ่มข้อความ, ลบตามตำแหน่ง, ลบ Space; สร้างและพิมพ์ผลรวมย่อยของเพจ แปลงระหว่างเนื้อหาของเซลล์และความคิดเห็น...
  • ซุปเปอร์ฟิลเตอร์ (บันทึกและใช้โครงร่างตัวกรองกับแผ่นงานอื่น ๆ ); การเรียงลำดับขั้นสูง ตามเดือน / สัปดาห์ / วันความถี่และอื่น ๆ ตัวกรองพิเศษ โดยตัวหนาตัวเอียง ...
  • รวมสมุดงานและแผ่นงาน; ผสานตารางตามคอลัมน์สำคัญ แยกข้อมูลออกเป็นหลายแผ่น; Batch แปลง xls, xlsx และ PDF...
  • คุณสมบัติที่ทรงพลังมากกว่า 300 รายการ. รองรับ Office / Excel 2007-2019 และ 365 รองรับทุกภาษา ใช้งานง่ายในองค์กรหรือองค์กรของคุณ ทดลองใช้ฟรี 30 วันเต็ม รับประกันคืนเงิน 60 วัน
kte แท็บ 201905

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

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
ด้านล่าง officetab
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Abi DC · 4 years ago
    HI Thanks for the coding, i am getting the syntax error highlighted on For i = 1 To Len(Rng.Value) and the debug Sub RemoveNotNum() is highlighted in yellow.. kindly advice.
  • To post as a guest, your comment is unpublished.
    usuc · 4 years ago
    The VBA works great. I modified it to always work on a column, as shown:

    For Each Cell In Range("B2:B" & ActiveSheet.UsedRange.Rows.Count)

    xOut = ""

    For i = 1 To Len(Cell.Value)

    xTemp = Mid(Cell.Value, i, 1)

    If xTemp Like "[0-9]" Then

    xStr = xTemp

    Else

    xStr = ""

    End If

    xOut = xOut & xStr

    Next i

    Cell.Value = xOut

    Next

    I also used this to sort a column by the last digit, changing the last part to Cell.Value = Right(xOut, 1) then sorting it numerically.
  • To post as a guest, your comment is unpublished.
    Naresh kumar · 4 years ago
    Send me it on my email id
    • To post as a guest, your comment is unpublished.
      samola · 4 years ago
      Hi,

      I want to use this macro but want to pre-define a range. Can you please let me know how to pre-define the range.

      Thanks,
      Samit
  • To post as a guest, your comment is unpublished.
    Cole · 6 years ago
    Just wanted to let you know that if the string starts with zero(s), or starts with letters, followed by zero(s), followed by the rest of the string this will remove all of the beginning zeroes. This is weird because it doesn't remove the zero(s) if they are between other non-zero numbers within the string, only if they start the string or are the first numbers after the initial letters in a string.

    Example.

    0060100 would come out as 60100

    PFF057726 would come out as 57726.

    Let me know if you have an explanation for this and can think of a solution. Thank you.
  • To post as a guest, your comment is unpublished.
    Roger · 6 years ago
    Thanx Guys for such a nice work. The script is awesome and it worked for. Keep it up guys.
  • To post as a guest, your comment is unpublished.
    Easter2015 · 6 years ago
    Use this Formaula for replacing the existing character with the new one
    =SUBSTITUTE(text,old_text,new_text,[instance_num])
    for ex-=SUBSTITUTE(TRIM(G1),"/","")
    Wish U all Happy Easter 2015
  • To post as a guest, your comment is unpublished.
    amanda · 7 years ago
    I received an error when I hit the > run button in the developer:

    Compile Error:
    Expected:end of statement


    and the word "non" in non-numeric is highlighted
  • To post as a guest, your comment is unpublished.
    Daniel · 7 years ago
    Wow. that worked , exactly what I needed.

    Thanks,
  • To post as a guest, your comment is unpublished.
    Julie Hodnett · 7 years ago
    Awesome Worked GREAT!!!!!!!!
  • To post as a guest, your comment is unpublished.
    Bryan Steven · 7 years ago
    wouldn't be better to replace the input-box method by just setting
    WorkRng like this:
    Set WorkRng = Intersect(ActiveSheet.UsedRange, Selection)
    that way if user select a entire column it wouldn't generate any error.
  • To post as a guest, your comment is unpublished.
    jo · 7 years ago
    thankyou worked well
  • To post as a guest, your comment is unpublished.
    JW · 7 years ago
    sample code for comments