Hàm xác định bộ gõ Unicode hay VNI? (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

PhanTuHuong

VBA & VB.NET for Excel & AutoCad
Thành viên danh dự
Tham gia
13/6/06
Bài viết
7,210
Được thích
24,724
Do VN tồn tại nhiều bộ gõ khác nhau như TCVN, VNI, Unicode nên việc trao đổi dữ liệu nhiều khi mất công. Do vậy tôi xin giới thiệu 2 hàm phân biệt chữ nào là Unicode, chữ nào là VNI, từ đó chúng ta có thể chuyển đổi kiểu chữ tự động trong Excel:

Mã:
'Xac dinh xem chuoi co phai la Vni hay khong?
'Nguoi lap PhanTuHuong - www.giaiphapexcel.com
Function isVni(vnRange As Range) As Boolean
    Dim vnStr As String, i As Integer, OneStr As String
    vnStr = vnRange.Text
    For i = 1 To Len(vnStr) - 1
        OneStr = Mid(vnStr, i, 1)
        If OneStr = "ù" Or OneStr = "ø" Or OneStr = "û" Or OneStr = "õ" Or OneStr = "ï" Or OneStr = "ê" Or _
            OneStr = "é" Or OneStr = "è" Or OneStr = "ú" Or OneStr = "ü" Or OneStr = "ë" Or OneStr = "â" Or _
            OneStr = "á" Or OneStr = "à" Or OneStr = "å" Or OneStr = "ã" Or OneStr = "ä" Or OneStr = "Ù" Or _
            OneStr = "Ø" Or OneStr = "Û" Or OneStr = "Õ" Or OneStr = "Ï" Or OneStr = "Ê" Or OneStr = "É" Or _
            OneStr = "È" Or OneStr = "Ú" Or OneStr = "Ü" Or OneStr = "Ë" Or OneStr = "Â" Or OneStr = "Á" Or _
            OneStr = "À" Or OneStr = "Å" Or OneStr = "Ã" Or OneStr = "Ä" Then
                isVni = True
                Exit Function
           Else
                isVni = False
        End If
    Next
End Function


Mã:
'Xac dinh co phai la Unicode hay khong (Suu tam)?
Function IsUnicode(StrRange As Range) As Boolean
   Dim Str As String, i As Long, bLen As Long, Map() As Byte
   Str = StrRange.Text
   If LenB(Str) Then
      Map = Str
      bLen = UBound(Map)
      For i = 1 To bLen Step 2
         If (Map(i) > 0) Then
            IsUnicode = True
            Exit Function
         End If
      Next
   End If
End Function

Nhờ các bác hay dùng VNI test thử xem đã chính xác hay chưa?
 
Lần chỉnh sửa cuối:
Hướng ơi, làm luôn TCVN luôn đi và nếu lồng các hàm vào nhau để chỉ cần dùng 1 hàm và kết quả trả về là 1, 2, 3 tương ứng là Uni, Vni, TCVN... chẳng hạn thì mình nghĩ tiện hơn, hihi

Cái này có voi rồi nên đòi luôn 2 BT
TDN
 
Upvote 0
Hướng ơi, làm luôn TCVN luôn đi và nếu lồng các hàm vào nhau để chỉ cần dùng 1 hàm và kết quả trả về là 1, 2, 3 tương ứng là Uni, Vni, TCVN... chẳng hạn thì mình nghĩ tiện hơn, hihi

Cái này có voi rồi nên đòi luôn 2 BT
TDN

Thì bác làm luôn đi, 3 trường hợp thì có 2 rồi. :-=
 
Upvote 0

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

Back
Top Bottom