Xóa các ký tự chỉ để lại chữ cái

Liên hệ QC

nhs243

Thành viên mới
Tham gia
13/5/11
Bài viết
33
Được thích
0
Trong một cột từ A1-An,Em muốn xóa hết tất cả các ký tự !@ # %^&()_-+=\|/><.,:có trong đoạn text của mỗi ô,nói chung là xóa hết ký tự thừa chỉ để lại mỗi chữ cái. Nếu xóa bằng tay thì phải chọn lần lượt từng ký tự rồi replace bằng dấu trắng,mất thời gian mà dễ bỏ sót!Mong các anh chị cho em cái mẫu code để xóa hết các ký tự đó đi.
 
Code mẫu của bạn đây
Mã:
Sub ThayThe()
Dim Arr
'Vung du lieu
Dim i As Long
Arr = [A1:A1000]
With CreateObject("Vbscript.Regexp")
    .Global = True
    .Pattern = "\D"
    For i = 1 To UBound(Arr, 1)
        Arr(i, 1) = .Replace(Arr(i, 1), "")
    Next
    Range("A1").Resize(UBound(Arr, 1), 1) = Arr
End With
End Sub
 
Trong một cột từ A1-An,Em muốn xóa hết tất cả các ký tự !@ # %^&()_-+=\|/><.,:có trong đoạn text của mỗi ô,nói chung là xóa hết ký tự thừa chỉ để lại mỗi chữ cái. Nếu xóa bằng tay thì phải chọn lần lượt từng ký tự rồi replace bằng dấu trắng,mất thời gian mà dễ bỏ sót!Mong các anh chị cho em cái mẫu code để xóa hết các ký tự đó đi.

Còn tùy thuộc là ký tự loại nào, tiếng việt hay là thế nào
 
Code mẫu của bạn đây
Mã:
Sub ThayThe()
Dim Arr
'Vung du lieu
Dim i As Long
Arr = [A1:A1000]
With CreateObject("Vbscript.Regexp")
    .Global = True
    .Pattern = "\D"
    For i = 1 To UBound(Arr, 1)
        Arr(i, 1) = .Replace(Arr(i, 1), "")
    Next
    Range("A1").Resize(UBound(Arr, 1), 1) = Arr
End With
End Sub
Cho em hỏi, có phải mình sẽ thay cái "\D" ở .Pattern bằng các ký tự cần bỏ đi không? vì em cho vào chạy thử không được?
Em không biết gì nhiều về code đâu ạ, chỉ biết copy and paste code vào file excel và run thôi!
 
Bạn dùng \W nhé...........
 
Gửi file kèm theo cho cụ thể đi bạn
File đây. Thỉnh thoảng có ô nó dính ký tự như `,+=|& mà để chắc ăn vì sợ không kiểm tra được hết thì em muốn có code xóa hết các ký tự như " !@ # %^&()_-+=\|/><.,: "
 

File đính kèm

  • file-thu.XLS
    19 KB · Đọc: 16
File đây. Thỉnh thoảng có ô nó dính ký tự như `,+=|& mà để chắc ăn vì sợ không kiểm tra được hết thì em muốn có code xóa hết các ký tự như " !@ # %^&()_-+=\|/><.,: "

Thử thay thế này xem sao
Kết quả dán vào cột C
Mã:
Sub ThayThe()
Dim Arr
Arr = Sheet1.Range("A1").CurrentRegion
Dim i As Long
Arr = [A1:A1000]
With CreateObject("Vbscript.Regexp")
    .Global = True
    .Pattern = "\W*(\w*)\W*"
    For i = 1 To UBound(Arr, 1)
        Arr(i, 1) = Trim(Replace(.Replace(Arr(i, 1), " " & "$1"), "_", ""))
    Next
    Range("C1").Resize(UBound(Arr, 1), 1) = Arr
End With
End Sub
 

File đính kèm

  • file-thu Reg.XLS
    35.5 KB · Đọc: 16
Lần chỉnh sửa cuối:
Xin cảm ơn các bác, thay bằng \W em đã sửa được tất cả rồi!
 
Web KT
Back
Top Bottom