Hiện nay code VBA xử lý các chuỗi string lôi unicode, convert sang dạng chuẩn unicode có chưa nhỉ?
Mình gặp văn bản có chuỗi ký tự như sau:
Ô A2 là kết quả của code sau:
Thông qua hàm ChrW ta kiểm tra ChrW(234) là chữ ê, và ChrW(803) là #.
Tất nhiên giá trị mong muốn đúng ra phải là chuỗi ký tự sau:
Ô A3 là ký tự nhập đúng.
Ô A4 là kết quả của chạy code trên sửa đầu vào là ô A3 và nơi ghi kết quả là ô A4. Ô A5 là kết quả của ChrW(7879).
Vấn đề là mình không biết người dùng đã gõ như thế nào để ra ký tự ở ô A1. Cho nên bây giờ nói muốn có hàm convert ra kết quả ô A3 cũng không biết làm sao.
Nếu trên Unikey, ấn ctr + shift + F6.
Ấn ctr+c copy lại đoạn ký tự ô A1. Tại giao diện này của unikey ấn chuyển mã.
Vào Excel ấn ctr+V để paste, ta sẽ được chuỗi ký tự đúng như kỳ vọng.
Tóm lại vấn đề muốn bàn là: Input như ô A1, làm sao ra được output như ô A3.
Mình gặp văn bản có chuỗi ký tự như sau:
Bạn cần đăng nhập để thấy đính kèm
Ô A2 là kết quả của code sau:
Mã:
Sub a1()
Dim i As Long, s As String, kq As String, s2 As String
s = Cells(1, 1).Text
For i = 1 To Len(s) Step 1
s2 = Mid(s, i, 1)
kq = kq & CharToUnicode(s2)
Next i
Cells(2, 1).Value = "'" & kq
End Sub
Function CharToUnicode(strChar As String)
Dim lngUnicode As Long
lngUnicode = AscW(strChar)
CharToUnicode = lngUnicode
End Function
Tất nhiên giá trị mong muốn đúng ra phải là chuỗi ký tự sau:
Ô A3 là ký tự nhập đúng.
Ô A4 là kết quả của chạy code trên sửa đầu vào là ô A3 và nơi ghi kết quả là ô A4. Ô A5 là kết quả của ChrW(7879).
Bạn cần đăng nhập để thấy đính kèm
Vấn đề là mình không biết người dùng đã gõ như thế nào để ra ký tự ở ô A1. Cho nên bây giờ nói muốn có hàm convert ra kết quả ô A3 cũng không biết làm sao.
Nếu trên Unikey, ấn ctr + shift + F6.
Bạn cần đăng nhập để thấy đính kèm
Ấn ctr+c copy lại đoạn ký tự ô A1. Tại giao diện này của unikey ấn chuyển mã.
Vào Excel ấn ctr+V để paste, ta sẽ được chuỗi ký tự đúng như kỳ vọng.
Tóm lại vấn đề muốn bàn là: Input như ô A1, làm sao ra được output như ô A3.