การลบอักขระที่ไม่ต้องการออกด้วย 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


🧭 Timeline หัวข้อหลัก

  • 0:24 ปัญหา: คอลัมน์ A มีอักขระแปลกปลอม
  • 0:50 แนวทางแก้ไข: ใช้ VBA เพื่อจัดการข้อมูล
  • 1:00 เปิดหน้าต่าง VBE ด้วย Alt + F11
  • 1:07 สร้าง Module และตั้งชื่อ Procedure
  • 1:47 ประกาศตัวแปรสำหรับวนลูปและเก็บข้อมูล
  • 3:34 ตัดอักขระทีละตัวและตรวจสอบว่าเป็นตัวที่ต้องการ
  • 5:45 เงื่อนไข: เก็บเฉพาะตัวอักษร A–Z, a–z, และตัวเลข 0–9
  • 6:44 นำผลลัพธ์ไปวางในคอลัมน์ B ด้วย Offset
  • 7:06 รันโค้ดด้วย F5 และตรวจสอบผลลัพธ์
Scroll to Top