Xóa các ký tự vô nghĩa trong dãy dữ liệu

saulong

Yêu THVBA
Mong mọi người giúp đỡ mình code VBA xóa các ký tự (VD: ²µÅ²»Þ°5ˆÙí) chỉ giữ lại tiếng anh trong trong dãy dữ liệu. Vì dữ liệu trên máy xuất ra rất nhiều, nếu ngồi xóa từng dòng chắc mình chết mất.
Mình xin gửi file dữ liệu mẫu xuất ra từ máy, mong nhận được sự giúp đỡ của mọi người.

ALM224 IONIZER 5 ERROR ²µÅ²»Þ°5ˆÙí
ALM100 SETTING ERROR FOR SORTING & EJECTION BIN HOLDER <SEN525> •ª—Þ”roËÞÝÎÙÀÞ°¾¯Ä•s—Ç<SEN525>
ALM235 STOP FOR CHECK-IN-TAPE NGðÌߌŸ¸NG’âŽ~
ALM116 PICKUP MISTAKE AT SEPARATION <SEN506> •ª—£Ë߯¸±¯Ìßн<SEN506>
ALM102@SEALING TEMPERATURE ERROR ¼°Ù‰·“xˆÙ

Xin chân thành cảm ơn mọi người
 

tester777

Yêu THVBA
Mong mọi người giúp đỡ mình code VBA xóa các ký tự (VD: ²µÅ²»Þ°5ˆÙí) chỉ giữ lại tiếng anh trong trong dãy dữ liệu. Vì dữ liệu trên máy xuất ra rất nhiều, nếu ngồi xóa từng dòng chắc mình chết mất.
Mình xin gửi file dữ liệu mẫu xuất ra từ máy, mong nhận được sự giúp đỡ của mọi người.

ALM224 IONIZER 5 ERROR ²µÅ²»Þ°5ˆÙí
ALM100 SETTING ERROR FOR SORTING & EJECTION BIN HOLDER <SEN525> •ª—Þ”roËÞÝÎÙÀÞ°¾¯Ä•s—Ç<SEN525>
ALM235 STOP FOR CHECK-IN-TAPE NGðÌߌŸ¸NG’âŽ~
ALM116 PICKUP MISTAKE AT SEPARATION <SEN506> •ª—£Ë߯¸±¯Ìßн<SEN506>
ALM102@SEALING TEMPERATURE ERROR ¼°Ù‰·“xˆÙ

Xin chân thành cảm ơn mọi người
Mã:
Sub CleanSpecialCharacters()
    Dim cell As Range
    Dim char As String
    Dim cleanText As String

    ' Loop through each cell in the selected range
    For Each cell In Selection
        cleanText = ""

        ' Loop through each character in the cell's value
        For i = 1 To Len(cell.Value)
            char = Mid(cell.Value, i, 1)

            ' Check if the character is printable
            If Asc(char) >= 32 And Asc(char) <= 126 Then
                cleanText = cleanText & char
            End If
        Next i

        ' Replace the cell's value with the cleaned text
        cell.Value = cleanText
    Next cell
End Sub
 

saulong

Yêu THVBA
Cảm ơn bạn rất nhiều! Mặc dù không xóa được, nhưng phần còn lại mình sẽ dùng hàm xử lý nó!
 

HUONGLIEN7214

Yêu THVBA
Cung cấp thêm cho bạn 1 giải pháp nữa để tham khảo thêm.
Hàm này của anh NDU viết từ lâu lắm rồi.
Mã:
Function ExtractChar(text As Variant)
     With CreateObject("VBScript.RegExp")
           .Global = True: .Pattern = "[^a-zA-Z ^0-9]"  
           ExtractChar = .Replace(text, " ")
     End With
End Function
 
Top