Giả sử bạn có một trang tính với nhiều dữ liệu như sau ABCD4578124YUIOH, bạn muốn xóa các chữ như ABCD, YUIOH và chỉ để lại các ký tự số trong chuỗi. Tất nhiên, bạn có thể xóa từng ký tự một, nhưng chúng mình sẽ hướng dẫn cách xóa chữ trong Excel và chỉ để lại ký tự số trong chuỗi tự động và ngược lại. Cùng xem nhé!
Để xóa các ký tự không phải số khỏi một dải ô có mã VBA, bạn vui lòng thực hiện như sau:
Bước 1: Bấm Developer -> Visual Basic để mở cửa sổ Microsoft Visual Basic cho ứng dụng. Trong cửa sổ Microsoft Visual Basic for applications, bấm Insert -> Module, sau đó sao chép và dán đoạn mã sau vào modul:
Sub RemoveNotNum() 'Updateby Extendoffice Dim Rng As Range Dim WorkRng As Range Dim xTitleId As String Dim xOut As String Dim xTemp As String Dim xStr As String Dim i As Integer On Error Resume Next xTitleId = "Excel" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8) On Error GoTo 0 ' Reset error handling If WorkRng Is Nothing Then Exit Sub ' User canceled For Each Rng In WorkRng xOut = "" For i = 1 To Len(Rng.Value) xTemp = Mid(Rng.Value, i, 1) If xTemp Like "[0-9]" Then xStr = xTemp Else xStr = "" End If xOut = xOut & xStr Next i Rng.Value = xOut Next Rng End SubBước 2: Sau đó, nhấp vào phím F5 để chạy code của bạn. Tất cả những ký tự không phải số trong phạm vi bạn chọn sẽ bị xóa như hình dưới đây:
Nếu các số có dấu thập phân, bạn có thể sử dụng VBA sau:
Sub RemoveNotNum() ' Updateby Extendoffice Dim Rng As Range Dim WorkRng As Range Dim xOut As String Dim xTemp As String Dim xStr As String Dim i As Integer On Error Resume Next Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range", "Select Range", WorkRng.Address, Type:=8) On Error GoTo 0 ' Reset error handling If WorkRng Is Nothing Then Exit Sub ' User canceled For Each Rng In WorkRng xOut = "" For i = 1 To Len(Rng.Value) xTemp = Mid(Rng.Value, i, 1) If xTemp Like "[0-9.]" Then xStr = xTemp Else xStr = "" End If xOut = xOut & xStr Next i Rng.Value = xOut Next Rng End SubBạn có thể xem kết quả như ảnh chụp màn hình dưới đây:
Bây giờ, bạn có một trang tính chứa rất nhiều thông tin dữ liệu chứa cả ký tự chữ cái và ký tự số. Bạn muốn giữ lại các ký tự chữ và loại bỏ các ký tự số cho tất cả các dữ liệu đó. Chẳng hạn như chuyển đổi James987den thành Jamesdenm, bạn phải làm thế nào?
Nếu bạn đã quen với mã VBA, bạn có thể sử dụng phương pháp sau:
Bước 1: Bấm Developer -> Visual Basic để mở cửa sổ Microsoft Visual Basic cho ứng dụng. Trong cửa sổ VBA, bấm Insert > Module, sau đó sao chép và dán đoạn mã sau vào modul:
Sub RemoveNum() ' Updateby20131129 Dim Rng As Range Dim WorkRng As Range Dim xOut As String Dim xTemp As String Dim xStr As String Dim i As Integer On Error Resume Next Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range", "Select Range", WorkRng.Address, Type:=8) On Error GoTo 0 ' Reset error handling If WorkRng Is Nothing Then Exit Sub ' User canceled For Each Rng In WorkRng xOut = "" For i = 1 To Len(Rng.Value) xTemp = Mid(Rng.Value, i, 1) If Not xTemp Like "[0-9.]" Then xStr = xTemp Else xStr = "" End If xOut = xOut & xStr Next i Rng.Value = xOut Next Rng End SubBước 2: Nhấn F5 để chạy mã, sau đó bạn sẽ thu được bảng tính chứa các chuỗi đã bị xóa bỏ số.
->
Giả sử có một dải dữ liệu, chẳng hạn như JAMES0898 # 4% ^ {}, bây giờ bạn chỉ muốn giữ lại các ký tự chữ và số (JAMES0898). Bạn có thể thực hiện một trong hai cách sau:
Để xóa cá ký tự không cần thiết ra khỏi ô, bạn có thể tạo một hàm tùy chỉnh.
Bước 1: Bấm phím tắt Alt + F11 để mở trình VBA, sau đó nhấn Insert > Module và sao chép và dán đoạn mã sau vào modul:
Function DeleteNonAlphaNumeric(xStr As String) As String Dim xStrR As String Dim xCh As String Dim xStrMode As String Dim xInt As Integer xStrMode = "[A-Za-z0-9]" ' Chỉ số không dấu và không cần khoảng trắng xStrR = "" For xInt = 1 To Len(xStr) xCh = Mid(xStr, xInt, 1) If xCh Like xStrMode Then xStrR = xStrR & xCh End If Next DeleteNonAlphaNumeric = xStrR End FunctionBước 2: Bây giờ quay lại trang tính, chọn một ô trống và nhập công thức sau:
=DeleteNonAlphaNumeric(B3)Sau đó kéo xuống để áp dụng công thức này cho các ô khác. Ta thu được kết quả như sau:
Ngoài ra, bạn có thể sử dụng mã VBA ngắn sau đây để xóa các ký tự không phải chữ và số ra khỏi ô nhanh chóng:
Bước 1: Mở cửa sổ Microsoft Visual Basic trên ứng dụng Excel.
Bước 2: Bấm Insert > Module, sau đó sao chép và dán đoạn mã sau vào modul:
Sub RemoveNotAlphasNotNum() ' Updateby2014128 Dim Rng As Range Dim WorkRng As Range Dim xOut As String Dim xTemp As String Dim xStr As String Dim i As Integer On Error Resume Next Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range", "Select Range", WorkRng.Address, Type:=8) On Error GoTo 0 ' Reset error handling If WorkRng Is Nothing Then Exit Sub ' User canceled For Each Rng In WorkRng xOut = "" For i = 1 To Len(Rng.Value) xTemp = Mid(Rng.Value, i, 1) If xTemp Like "[a-zA-Z0-9.]" Then xStr = xTemp Else xStr = "" End If xOut = xOut & xStr Next i Rng.Value = xOut Next Rng End SubBước 3: Nhấn phím F5 hoặc nhấp vào nút Run để thực thi mã.
Bước 4: Sau đó, chọn một phạm vi bạn muốn xóa tất cả các ký tự không phải chữ và số trong hộp thoại bật lên và nhấp vào nút OK .
Bây giờ tất cả các ký tự không phải chữ và số đã bị xóa khỏi phạm vi đã chọn.
Như bạn thấy VBA không khó, nhưng có thể tối ưu tối đa hiệu suất thực hiện công việc và tiết kiệm thời gian. Vậy tại sao bạn không học VBA ngay để tự động hóa công việc hàng ngày hiệu quả. Bạn có thể tham khảo một số khóa học tại Gitiho sau:
Nếu bạn làm việc với các tệp đến từ một nguồn không phải Excel hoặc bạn dán thông tin từ một ứng dụng khác vào các ô trang tính, đôi khi bạn có một số ký tự không in được hoặc không hiển thị được trong trang tính của mình.
Để làm cho trang tính của bạn sạch và đẹp hơn, bạn cần xóa các ký tự không cần thiết đó. Hàm CLEAN có thể xóa tất cả các ký tự không thể in ra khỏi ô. Ví dụ, tôi có Cột C (C2: C11) cần loại bỏ các ký tự không in được. Bạn có thể làm như hướng dẫn sau:
Bước 1: Chọn một ô trống D2 liền kề với C2 và nhập:
=CLEAN(C2)Bước 2: Nhấn phím Enter .
Bước 3: Và sau đó kéo công thức trong phạm vi ô mà bạn muốn xóa các ký tự không in được.
Hy vọng qua bài viết này, bạn đã biết cách xóa chữ trong Excel hoặc các ký tự không cần thiết khác trong chuỗi. Để đọc thêm những mẹo và thủ thuật khác trong Excel bạn hãy truy cập Blog Excel của Gitiho nhé.
Gitiho chân thành cảm ơn bạn đọc!
Link nội dung: https://diendanxaydung.net.vn/cach-xoa-chu-trong-o-excel-a62308.html