Giúp em loại bỏ kí tự khoảng trắng này bằng macro

Liên hệ QC

hoangminhgiam

Thành viên mới
Tham gia
24/2/13
Bài viết
13
Được thích
0
Em có data có rất nhiều cái kí hiệu khoảng trắng lạ kì không thể bỏ nó đi được bằng macro.
Có bác nào có thể code để loại bỏ cái kí tự char(160) này và thay bằng khoảng trắng thông thường char(32) giúp em được ko?
file:
http://www.mediafire.com/?9br8qgndzum2bzw

Cái khoảng trắng em nói tới nó chính là cái cell em tô màu xanh, các bác click đúp chuột vào cell đó sẽ thấy nó là khoảng trắng.
Khi nó xuất hiện trong chuỗi kí tự sẽ làm phép so sánh của em bị sai (xem kết quả so sánh cell C1 ý ạ)
 
Bạn copy ký tự đó > Ctrl + H > Ctrl + V vào hộp thoại Find What > Gõ dấu cách vào ô Replace > Replace All
 
Upvote 0
Sao khi em làm ở máy tính khác thì ko được nhỉ. Tức là replace bằng tay thì ok. Ghi lại quá trình đó thành mã VBA thì cái chỗ kí tự đó nó hiển thị là dấu ?
Vì vậy khi chạy macro này thì không loại bỏ được kí tự trắng này. Có ai có cách code triệt để giúp em ko ạ
 
Upvote 0
Sao khi em làm ở máy tính khác thì ko được nhỉ. Tức là replace bằng tay thì ok. Ghi lại quá trình đó thành mã VBA thì cái chỗ kí tự đó nó hiển thị là dấu ?
Vì vậy khi chạy macro này thì không loại bỏ được kí tự trắng này. Có ai có cách code triệt để giúp em ko ạ

Ít ra bạn cũng phải cho mọi người biết cái "con macro" của bạn hình thù nó ra làm sao chứ
(file thì chỉ có 2 cell, test quái gì được đây?)
 
Upvote 0
Dạ đây anh. macro đây ạ
http://www.mediafire.com/view/?nd2nkam5breb5d3
Nhưng khi vác ra máy tính khác thì trong code này cái khoảng trắng ấy nó hiện là dấu ?
hjc

Code của bạn là:
Mã:
Sub Macro2()
'
'
    Columns("A:B").Select
    Selection.Replace [B][COLOR=#ff0000]What:=" "[/COLOR][/B], Replacement:=" ", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub
Chú ý chổ màu đỏ. Lý ra phải ghi là: What:=Chr(160) mới chắc ăn
 
Upvote 0
Code của bạn là:
Mã:
Sub Macro2()
'
'
    Columns("A:B").Select
    Selection.Replace [B][COLOR=#ff0000]What:=" "[/COLOR][/B], Replacement:=" ", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub
Chú ý chổ màu đỏ. Lý ra phải ghi là: What:=Chr(160) mới chắc ăn
Cho em hỏi
Code trên sẽ chọn cột A:B để chạy code
Bây giờ em muốn thay cột A: B bằng cách hiện ra 1 bảng Input " bạn chọn vùng để xóa"
(vì vùng chạy code của em lúc thì vùng này, lúc là vùng khác)
thì code sẽ được sửa như thế nào? em cũng đã sửa nhưng chưa được
Các anh chị giúp giùm! em cảm ơn
 
Upvote 0
Em có sửa code như thế này, nhưng hình như chưa đúng!?
Nhờ anh/chị sửa giúp
Mã:
Sub Xoa_Chr160 ()
    
    On Error Resume Next 
    Set Rng = Application.InputBox("Chon vùng", Type:=8) 
    On Error GoTo 0 
    Selection.Replace What:=Chr(160), Replacement:=" ", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
       
End Sub
 
Upvote 0
Em có sửa code như thế này, nhưng hình như chưa đúng!?
Nhờ anh/chị sửa giúp
Mã:
Sub Xoa_Chr160 ()
   
    On Error Resume Next
    Set Rng = Application.InputBox("Chon vùng", Type:=8)
    On Error GoTo 0
    Selection.Replace What:=Chr(160), Replacement:=" ", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
      
End Sub
Thay Selection thành Rng là được rồi (Selection.Replace... ---> Rng.Replace...)
 
Upvote 0
Em có sửa code như thế này, nhưng hình như chưa đúng!?
Nhờ anh/chị sửa giúp
Mã:
Sub Xoa_Chr160 ()
   
    On Error Resume Next
    Set Rng = Application.InputBox("Chon vùng", Type:=8)
    On Error GoTo 0
    Selection.Replace What:=Chr(160), Replacement:=" ", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
      
End Sub
Bỏ luôn cái dòng Set Rng...
Chọn vùng nào áp dụng cho vùng đó.
 
Upvote 0
Cho em hỏi thêm
Giả sử em chọn khối cell E5:X2000
Thì sau khi chạy code ở trên thì nó không còn chọn khối cell E5:X2000 nữa
Bây giờ em muốn khi chạy code xong thì nó vẫn được chọn khối cell E5:X2000
Mục đích để em tiếp tục chạy 1 code khác
Em cảm ơn!
 
Upvote 0
Cho em hỏi thêm
Giả sử em chọn khối cell E5:X2000
Thì sau khi chạy code ở trên thì nó không còn chọn khối cell E5:X2000 nữa
Bây giờ em muốn khi chạy code xong thì nó vẫn được chọn khối cell E5:X2000
Mục đích để em tiếp tục chạy 1 code khác
Em cảm ơn!
Nếu code của bạn chỉ có như thế thì đâu có bị mất vùng chọn đâu?
 
Upvote 0
Nếu code của bạn chỉ có như thế thì đâu có bị mất vùng chọn đâu?
Áp dụng bài #10 thì code như thế này
Mã:
Sub Xoa_Chr160()
    
    Dim rng As Object
    On Error Resume Next
    Set rng = Application.InputBox("Chon vùng", Type:=8)
    On Error GoTo 0
    rng.Replace What:=Chr(160), Replacement:=" ", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
       
End Sub
Sau khi chạy thì nó không còn giữ vùng đã chọn
 
Upvote 0
Áp dụng bài #10 thì code như thế này
Mã:
Sub Xoa_Chr160()
   
    Dim rng As Object
    On Error Resume Next
    Set rng = Application.InputBox("Chon vùng", Type:=8)
    On Error GoTo 0
    rng.Replace What:=Chr(160), Replacement:=" ", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
      
End Sub
Sau khi chạy thì nó không còn giữ vùng đã chọn
Vùng đã chọn là vùng nào? Vùng chọn trước khi chạy code hay vùng chọn trong inputbox?
 
Upvote 0
Cho em hỏi thêm
Giả sử em chọn khối cell E5:X2000
Thì sau khi chạy code ở trên thì nó không còn chọn khối cell E5:X2000 nữa
Bây giờ em muốn khi chạy code xong thì nó vẫn được chọn khối cell E5:X2000
Mục đích để em tiếp tục chạy 1 code khác
Em cảm ơn!
Chọn trước hay chọn sau thì có sao đâu mà.
Code chỉ cần vầy, rồi gán vào nút lệnh nào đó (*):
PHP:
Sub vidu()
Selection.Replace What:=Chr(160), Replacement:=" "
End Sub
Cách thao tác:
- Quét chọn vùng E5:X2000;
- Click nút (*).
Vậy thôi. Đảm bảo vùng E5:X2000 vẫn được chọn từ đầu tới cuối.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom