Xóa chữ cái và các ký tự đặc biệt chỉ giữ lại số trong Excel

Nếu bạn muốn hợp lệ dữ liệu bằng cách loại bỏ các ký tự đặc biệt và chữ cái trong một ô (Cell) thì hàm VBA dưới đây có thể giúp bạn:

Trong file excel, bạn xem ví dụ này ở Sheet 2

'Remove All Alpha and Special characters from cell
Function Remove_AlphaSpecialChar(DataCell As Range) As String
    
    'Variable Declaration
    Dim iCnt As Integer
    Dim IpData As Range
    Dim sData As String, sTmp As String
             
    If DataCell.Count <> 1 Then
        MsgBox ("Please select Single Cell"), vbInformation
        Exit Function
    End If
    
    'Runnning for loop to check all available Characters in a cell
    For iCnt = 1 To Len(DataCell.Text)
        If Mid(DataCell.Text, iCnt, 1) Like "[0-9]" Then
            sData = sData & Mid(DataCell.Text, iCnt, 1)
        End If
    Next iCnt
    
    Remove_AlphaSpecialChar = sData
End Function

Xóa chữ cái và các ký tự đặc biệt chỉ giữ lại số trong ExcelĐể tiện tham khảo, các bạn download file Excel tại đây

Còn nếu bạn muốn làm điều này đối với 1 vùng chọn các cell (Range) thì viết hàm Macro dưới đây:

1. Mở 1 sheet Excel và gõ loạn xạ các phím vào các ô trong vùng A2:A10 (Trong file excel, bạn xem ví dụ ở Sheet1)

2. Ấn Alt + F11 để chuyển sang chế độ Developer

3. Chọn Insert / Module

Xóa chữ cái và các ký tự đặc biệt chỉ giữ lại số trong Excel

4. Copy đoạn code dưới đây vào cửa sổ soạn thảo code

5. Ấn Alt + F8 để Run Marcro Remove_AlphaCharacters_From_Cell_Or_Range

Xóa chữ cái và các ký tự đặc biệt chỉ giữ lại số trong Excel

 

'Remove All Alpha and Special characters from cell or Range using VBA code
Sub Remove_AlphaCharacters_From_Cell_Or_Range()
    
    'Variable Declaration
    Dim iCnt As Integer
    Dim IpData As Range, DataRange As Range
    Dim sData As String, sTmp As String
    
    'Create Object for Selected Range
    On Error Resume Next
    Set DataRange = Sheets("Sheet1").Range("A2:A10")
    
    If DataRange.Count < 1 Then
        MsgBox ("Please select range which contains data in cells"), vbInformation
        Exit Sub
    End If
    
    'Runnning for loop to check all available cells
    For Each IpData In DataRange
        sTmp = ""
        For iCnt = 1 To Len(IpData.Value)
            If Mid(IpData.Value, iCnt, 1) Like "[0-9]" Then
                sData = Mid(IpData.Value, iCnt, 1)
            Else
                sData = ""
            End If
            sTmp = sTmp & sData
        Next iCnt
        
        'Reassign Final Numeric characters
        IpData.Value = sTmp
    Next IpData
    
End Sub

Xóa chữ cái và các ký tự đặc biệt chỉ giữ lại số trong Excel

Để tiện tham khảo, các bạn download file Excel tại đây

Xem thêm: Giáo trình Excel thực hành và Bài tập

Recommended For You

About the Author: Nguyễn Đức Anh

Muốn giỏi phải học, muốn học thì phải hỏi. Chính vì thế, hãy cùng tham gia thảo luận với nhau để tìm ra câu trả lời nếu có thắc mắc nhé!

1 Comment

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *