? เมื่อเราพบว่าข้อมูลที่ได้รับมานั้นในแต่ละเซลล์มีอักขระแปลกปลอมปะปนอยู่ในหลายตำแหน่ง ไม่สามารถระบุได้แน่ชัดว่าอยู่ที่อักขระที่เท่าไรบ้าง หากจะลบด้วยมือจะต้องใช้เวลามาก เราจะจัดการกับปัญหานี้ได้อย่างไร ?
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 และตรวจสอบผลลัพธ์