- 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:
Nhờ các bác hay dùng VNI test thử xem đã chính xác hay chưa?
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: