Viết chuỗi String bằng tiếng việt

Liên hệ QC

hungpecc1

Thành viên gắn bó
Tham gia
24/8/12
Bài viết
1,709
Được thích
2,304
Giới tính
Nam
Dim ten as String
Ten = " nguyễn Mạnh Hùng " & tuoi


Em muốn viết chữ Nguyễn Mạnh Hùng có dấu trong VB, để trong cel nó cũng hiện tên

A1 = Ten = Nguyễn Mạnh Hùng 24 tuổi



Các pác giúp e Thanks !
 
"nguy" & ChrW(7877) & "n M" & ChrW(7841) & "nh Hùng " & tuoi

Code này mình không nhớ tác giả.
Mã:
Function VbaUni(chuoi As String) As String
If chuoi = "" Then
VbaUni = """"""
Else
chuoi = chuoi & " "
If AscW(Left(chuoi, 1)) < 256 Then VbaUni = """"
For n = 1 To Len(chuoi) - 1
uni1 = Mid(chuoi, n, 1)
uni2 = AscW(Mid(chuoi, n + 1, 1))
If AscW(uni1) > 255 And uni2 > 255 Then
VbaUni = VbaUni & "ChrW(" & AscW(uni1) & ") & "
ElseIf AscW(uni1) > 255 And uni2 < 256 Then
VbaUni = VbaUni & "ChrW(" & AscW(uni1) & ") & """
ElseIf AscW(uni1) < 256 And uni2 > 255 Then
VbaUni = VbaUni & uni1 & """ & "
Else
VbaUni = VbaUni & uni1
End If
Next
If Right(VbaUni, 4) = " & """ Then
VbaUni = Mid(VbaUni, 1, Len(VbaUni) - 4)
Else
VbaUni = VbaUni & """"
End If
End If
End Function
 
Upvote 0
Xin thưa với bạn là trong môi trường VBA, nó không hỗ trợ Unicode, nhưng bạn có thể gõ font khác, VNI chẳng hạn.
 
Upvote 0
Dim ten as String
Ten = " nguyễn Mạnh Hùng " & tuoi


Em muốn viết chữ Nguyễn Mạnh Hùng có dấu trong VB, để trong cel nó cũng hiện tên

A1 = Ten = Nguyễn Mạnh Hùng 24 tuổi



Các pác giúp e Thanks !
Đương nhiên là không thể gõ tiếng Việt Unicode trong môi trường VB rồi. Tuy nhiên có thể dùng tí kỹ xảo
Ta mượn hàm này:
PHP:
Function UniConvert(ByVal Text As String, ByVal InputMethod As String) As String
  Dim VNI_Type, Telex_Type, CharCode, Temp, i As Long
  UniConvert = Text
  VNI_Type = Array("a81", "a82", "a83", "a84", "a85", "a61", "a62", "a63", "a64", "a65", "e61", _
      "e62", "e63", "e64", "e65", "o61", "o62", "o63", "o64", "o65", "o71", "o72", "o73", "o74", _
      "o75", "u71", "u72", "u73", "u74", "u75", "a1", "a2", "a3", "a4", "a5", "a8", "a6", "d9", _
      "e1", "e2", "e3", "e4", "e5", "e6", "i1", "i2", "i3", "i4", "i5", "o1", "o2", "o3", "o4", _
      "o5", "o6", "o7", "u1", "u2", "u3", "u4", "u5", "u7", "y1", "y2", "y3", "y4", "y5")
  Telex_Type = Array("aws", "awf", "awr", "awx", "awj", "aas", "aaf", "aar", "aax", "aaj", "ees", _
      "eef", "eer", "eex", "eej", "oos", "oof", "oor", "oox", "ooj", "ows", "owf", "owr", "owx", _
      "owj", "uws", "uwf", "uwr", "uwx", "uwj", "as", "af", "ar", "ax", "aj", "aw", "aa", "dd", _
      "es", "ef", "er", "ex", "ej", "ee", "is", "if", "ir", "ix", "ij", "os", "of", "or", "ox", _
      "oj", "oo", "ow", "us", "uf", "ur", "ux", "uj", "uw", "ys", "yf", "yr", "yx", "yj")
  CharCode = Array(ChrW(7855), ChrW(7857), ChrW(7859), ChrW(7861), ChrW(7863), ChrW(7845), ChrW(7847), _
      ChrW(7849), ChrW(7851), ChrW(7853), ChrW(7871), ChrW(7873), ChrW(7875), ChrW(7877), ChrW(7879), _
      ChrW(7889), ChrW(7891), ChrW(7893), ChrW(7895), ChrW(7897), ChrW(7899), ChrW(7901), ChrW(7903), _
      ChrW(7905), ChrW(7907), ChrW(7913), ChrW(7915), ChrW(7917), ChrW(7919), ChrW(7921), ChrW(225), _
      ChrW(224), ChrW(7843), ChrW(227), ChrW(7841), ChrW(259), ChrW(226), ChrW(273), ChrW(233), ChrW(232), _
      ChrW(7867), ChrW(7869), ChrW(7865), ChrW(234), ChrW(237), ChrW(236), ChrW(7881), ChrW(297), ChrW(7883), _
      ChrW(243), ChrW(242), ChrW(7887), ChrW(245), ChrW(7885), ChrW(244), ChrW(417), ChrW(250), ChrW(249), _
      ChrW(7911), ChrW(361), ChrW(7909), ChrW(432), ChrW(253), ChrW(7923), ChrW(7927), ChrW(7929), ChrW(7925))
  Select Case InputMethod
    Case Is = "VNI": Temp = VNI_Type
    Case Is = "Telex": Temp = Telex_Type
  End Select
  For i = 0 To UBound(CharCode)
    UniConvert = Replace(UniConvert, Temp(i), CharCode(i))
    UniConvert = Replace(UniConvert, UCase(Temp(i)), UCase(CharCode(i)))
  Next i
End Function
Xong, bây giờ muốn gõ Nguyễn Mạnh Hùng, bạn có thể làm như sau:
Mã:
Dim Ten As String
Ten = UniConvert("Nguye64n Ma5nh Hu2ng", "VNI")
Hoặc
Mã:
Dim Ten As String
Ten = UniConvert("Nguyeexn Majnh Hufng", "Telex")

Y chang như cách mà bạn gõ tiếng Việt bằng bộ gõ vậy
 
Upvote 0
Web KT

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

Back
Top Bottom