การลบอักขระที่ไม่ต้องการออกด้วย VBA

? เมื่อเราพบว่าข้อมูลที่ได้รับมานั้นในแต่ละเซลล์มีอักขระแปลกปลอมปะปนอยู่ในหลายตำแหน่ง ไม่สามารถระบุได้แน่ชัดว่าอยู่ที่อักขระที่เท่าไรบ้าง หากจะลบด้วยมือจะต้องใช้เวลามาก เราจะจัดการกับปัญหานี้ได้อย่างไร ?

Video ด้านล่างนี้สาธิตการเขียน VBA เข้ามาจัดการโดยมีการวนลูปเข้าไปยังแต่ละเซลล์ในคอลัมน์ A และลูปเข้าไปในแต่ละอักขระในเซลล์นั้น ๆ หากพบว่าเป็นอักขระที่ต้องการจึงจะเก็บมาใช้ หากไม่ใช่อักขระที่ต้องการเราก็จะข้ามอักขระนั้นไป เมื่อ Loop ไปจนครบทุกอักขระจะวางผลลัพธ์ที่คอลัมน์ B สำหรับการเขียน VBA จะเหมาะกับผู้ที่มีพื้นฐานด้านการเขียนโปรแกรมควบคุมการทำงานของ Excel หรือโปรแกรมในชุด Microsoft Office มาก่อน ไม่เหมาะสำหรับมือใหม่ ตัวอย่าง Code ตามด้านล่างครับ ?

Sub Test0()
    Dim rall As Range, r As Range
    Dim t As String, i As Integer
    Dim x As String
    With Sheets("Sheet1")
        For Each r In .Range("a2", .Range("a" & .Rows.Count).End(xlUp))
            t = ""
            For i = 1 To Len(r)
                x = Mid(r, i, 1)
                If UCase(x) Like "[A-Z]" Or x Like "[0-9]" Then
                    t = t & x
                End If
            Next i
            r.Offset(0, 1).Value = t
        Next r
    End With
End Sub

Video สาธิตการลบอักขระที่ไม่ต้องการด้วย VBA

Scroll to Top