Dùng hàm Substitute để thay thế mẫu tự trong chuỗi.

Liên hệ QC

OverAC

Đỗ Nguyên Bình
Thành viên BQT
Administrator
Tham gia
30/5/06
Bài viết
2,682
Được thích
15,001
Có một bạn đăng trên Facebook GPE hỏi
Hi mọi người,

Tình hình là em có 1 cột có nhiều chuỗi bị lỗi bảng mã (do dung lisp copy từ AutoCAD sang Excel), một số ký tự tiếng Việt có dấu thì bị thay đổi thành dạng mã hết. Hình 2 là mã và ký tự tiếng Việt đúng cần thay thế.

Hiện tại thì em đang dùng lệnh Ctrl+H để tìm và thay thế từng chữ cái một, như vậy thì rất lâu. Vậy cho em hỏi là có cách nào để làm nhanh hơn không, em có thử record 1 đoạn VBA nhưng trong đó thì không viết có dấu được, nên cũng k biết chỉnh thế nào
1f641.png
:(

Mong được cao nhân giúp đỡ ạ ^^
 

File đính kèm

  • 21751942_771994676304730_355743762242859154_n.jpg
    21751942_771994676304730_355743762242859154_n.jpg
    33.8 KB · Đọc: 15
  • 21752043_771994672971397_6513072369786310221_n.jpg
    21752043_771994672971397_6513072369786310221_n.jpg
    11.1 KB · Đọc: 14
Mình có file làm việc tương tự như vậy, hi vọng có thể giúp bạn.
 

File đính kèm

  • Thay thế các mẫu tự.xlsx
    17.9 KB · Đọc: 22
Theo như những gì tôi thấy trong hình thì tôi viết 1 hàm VBA để chuyển đoạn mã thành câu tiếng Việt.

Mã:
Public Function hello(ByVal iText As String)
Static regec As Object, domDoc As Object
If regec Is Nothing Then
    Set regec = CreateObject("VBScript.RegExp")
    regec.Global = True
    Set domDoc = CreateObject("Msxml2.DOMDocument")
End If
regec.Pattern = "\\U\+[A-F0-9]{4}"
iText = regec.Replace(iText, "$&;")
regec.Pattern = "\\U\+(?=[A-F0-9]{4};)"
iText = regec.Replace(iText, "&#x")
domDoc.LoadXML "<root>" & iText & "</root>"
hello = domDoc.Text
End Function
 
Web KT
Back
Top Bottom