Hàm Replace, Hàm Clean-để Xóa Dấu Cách Và Dấu Xuống Dòng

Menu Tự học VBA
  • Trang chủ
  • Diễn đàn Bài viết mới Tìm chủ đề
  • Có gì mới Bài viết mới Hoạt động mới nhất
Đăng nhập Đăng ký Có gì mới? Tìm kiếm

Tìm kiếm

Everywhere Chủ đề This forum This thread Chỉ tìm trong tiêu đề Bởi: Tìm Tìm kiếm nâng cao…
  • Bài viết mới
  • Tìm chủ đề
Menu Đăng nhập Đăng ký
  • Cách upload ảnh lên diễn đàn
  • Trang chủ
  • Diễn đàn
  • Kỹ thuật xử lý Excel
  • Lập trình VBA
Hàm Replace, hàm Clean-để xóa dấu cách và dấu xuống dòng
  • Thread starter Yukino Ichikawa
  • Ngày gửi 1/10/21
Y

Yukino Ichikawa

VIP

Trong xử lý văn bản, nếu không xử lý tốt các ký hiệu đặc biệt, khi so sánh string1 với string2 có thể dẫn tới kết quả không như mong muốn. Ở bài viết này, tôi sẽ giới thiệu mọi người cách để xóa dấu cách và dấu xuống dòng trong văn bản. Chúng ta có 3 cách: Dùng hàm Replace, dùng phương thức Replace, dùng hàm Clean. Lưu ý : Hàm Clean chỉ xóa dấu xuống dòng. 1. Cách sử dụng hàm Replace để xóa dấu xuống dòng và dấu cách Cấu trúc: Mã: Replace(expression,find,replace[,start[,count[,compare]]]) Một cách đơn giản có thể diễn giải như sau: 「Replace(Chuỗi_Ký_Tự,Ký_Tự_Tìm_Kiếm,Ký_Tự_Thay_Thế[,Vị_Trí_Bắt_Đầu[,Số_Lần_Thay_Thế],Phương_Pháp_So_Sánh]]])」 Xóa dấu cách và dấu xuống dòng Hãy xem ví dụ dưới đây: 1.1 Xóa dấu cách: 「Compare:=vbTextCompare」không phân biệt chữ hoa và chữ thường. Mã: Sub Sample1() Dim MyStr As String MyStr = "t u h o c v b a . n e t" MyStr = Replace(MyStr, " ", "", Compare:=vbTextCompare) MsgBox MyStr End Sub Nếu như vẫn muốn phân biệt chữ hoa và chữ thường nhưng không muốn chỉ định Compare thì có thể làm như sau: Mã: Sub Sample2() Dim MyStr As String MyStr = "t u h o c v b a . n e t" MyStr = Replace(Replace(MyStr, " ", ""), " ", "") MsgBox MyStr End Sub 1.2 Xóa dấu xuống dòng Ta sẽ thay thế 「vbCrLf 」bằng「””」 Mã: Sub Sample3() Dim MyStr As String MyStr = "E" & vbCrLf & "M" & vbCrLf & "Y" & vbCrLf & "E" & vbCrLf & "U" & vbCrLf & "THVBA" MyStr = Replace(MyStr, vbCrLf, "") MsgBox MyStr End Sub 2. Dùng phương thức Replace để xóa dấu cách và dấu xuống dòng Tính năng Replace của Excel nhìn chung giống hàm Replace trong VBA. Nếu như không tìm thấy để thay thế sẽ có lỗi xảy ra, do đó chúng ta cần xử lý khéo léo chỗ này. Phương thức này sẽ tìm kiếm và thay thế trong một phạm vi do người dùng chỉ định. Phương thức Replace trong Excel khi được thiết định điều kiện tìm kiếm và thay thế, nó sẽ được lưu trong Excel. Cấu trúc: Mã: Range.Replace(what、replacement、LookAt、searchorder、matchcase、matchByte、searchorder、replaceformat) Hãy xem ví dụ dưới đây: 2.1 Xóa dấu cách 「matchcase」 nếu chỉ định là False, thì sẽ không phân biệt chữ hoa và chữ thường. Mã: Sub Sample4() Range("A1:A10").Replace What:=" ", Replacement:="", LookAt:=xlPart, MatchCase:=False End Sub 2.2 Xóa dấu xuống dòng Ta sẽ thay thế 「vbCrLf 」bằng「””」 Mã: Sub Sample5() Range("A1:A10").Replace What:=vbCrLf, Replacement:="", LookAt:=xlPart, MatchCase:=False End Sub 3. Sử dụng hàm Clean để xóa dấu xuống dòng Cấu trúc: Mã: WorksheetFunction.Clean(str) Mã: Sub Sample6() Dim MyStr As String MyStr = "E" & vbCrLf & "M" & vbCrLf & "Y" & vbCrLf & "E" & vbCrLf & "U" & vbCrLf & "THVBA" MyStr = WorksheetFunction.Clean(MyStr) MsgBox MyStr End Sub Nguồn tham khảo : Bạn cần đăng nhập để thấy link N

NhanSu

SMod
Thành viên BQT @Yukino Ichikawa trong một ô Excel, khi ta bấm Alt Enter để xuống dòng thì ký tự xuống dòng đó có mã ASCII là 10 (vbLf) còn ký tự vbCr và vbCrLf có mã 13. Khi xóa ta cần thay thế các ký tự này. T

thanhphong

Guest
NhanSu nói: @Yukino Ichikawa trong một ô Excel, khi ta bấm Alt Enter để xuống dòng thì ký tự xuống dòng đó có mã ASCII là 10 (vbLf) còn ký tự vbCr và vbCrLf có mã 13. Khi xóa ta cần thay thế các ký tự này. Nhấn để mở rộng...
Đúng rồi đó bác. Trước khi xử lý ký tự cần có bước chuẩn hóa: Mã: s = Replace(s, Chr(13), Chr(10), , , vbTextCompare) Thay thế hết chr(13) thành chr(10) cho dễ làm việc. Hoặc ngược lại. Topic liên quan: Bạn cần đăng nhập để thấy link N

NhanSu

SMod
Thành viên BQT Mình thường thay thế các ký tự 10 và 13 với khoảng trắng rồi dùng Application.Trim để xóa khoảng trắng thừa. Nếu sử dụng Clean thì có thể xảy ra trường hợp các từ bị dính liền tạo ra output không mong muốn. Ví dụ chuỗi ban đầu là "a" & Chr(10) & "b", nếu sử dụng thay thế sẽ được "a b", nếu dùng Clean thành "ab". Tùy theo mong muốn mà ta chọn cách phù hợp. Bạn phải đăng nhập hoặc đăng ký để bình luận. Chia sẻ: Facebook Twitter WhatsApp Email Link
  • Trang chủ
  • Diễn đàn
  • Kỹ thuật xử lý Excel
  • Lập trình VBA
Top

Từ khóa » Hàm Thay Thế Trong Vba