Lỗi chữ khi lập trình (1 người xem)

Liên hệ QC

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

1. Vấn đề thứ nhất: Để gõ được tiếng Việt Unicode trong VBA thì bạn không thể gõ trực tiếp được mà cần thông qua bộ chuyển đổi (từ font TCVN3 hoặc VNI,... sang Unicode) hoặc sử dụng hàm ChrW để thể hiện. Bạn có thể tìm hiểu về hàm ChrW trong các topic sau:
- Function UniVBA và MsgUni hỗ trợ nhập tiếng việt (Font Unicode) trong VBA
- Unicode tiếng Việt trong VBA Excel
- ...
2. Vấn đề thứ hai: Việc gõ chữ hoa có dấu đối với các font TCVN3, bạn cần thêm một thao tác định dạng font nữa. Cụ thể, tôi đã trả lời bạn tại bài này

Thêm một góp ý với bạn: Bạn mở topic Lỗi chữ khi lập trình trong box Những vấn đề chung là không hợp lý. Bạn nên đặt nó trong box Lập trình với Excel thì phù hợp hơn. Tôi sẽ dời topic về đúng chỗ nhưng bạn cần phải rút kinh nghiệm cho lần sau đấy nhé!
 
Lần chỉnh sửa cuối:
Upvote 0
Uhm! mình sẽ rút kinh nghiệm vì mình hay quen vào phần những vấn đề chung xem các bài viết nên tiện tay theo thói quen thui, Mà không phải dùng hàm, mình copy chữ từ cells vào VB nhưng sao Font .VnTime thì lại hiển thị tốt mà khi copy font Times New Roman vào VB thì nó lại chạy chữ------->>>>> vấn để là ở đó
 
Upvote 0
Uhm! mình sẽ rút kinh nghiệm vì mình hay quen vào phần những vấn đề chung xem các bài viết nên tiện tay theo thói quen thui, Mà không phải dùng hàm, mình copy chữ từ cells vào VB nhưng sao Font .VnTime thì lại hiển thị tốt mà khi copy font Times New Roman vào VB thì nó lại chạy chữ------->>>>> vấn để là ở đó
Đúng rồi, trong cửa số VBE không thể hiển thị tiếng Việt Unicode được đâu. Chính vì vậy mình mới đề xuất với bạn cách sử dụng bộ chuyển đổi hoặc hàm ChrW để gõ tiếng Việt Unicode trong VBA.
 
Upvote 0
Mình làm được theo phương pháp thêm vào &chrw()& ------>>>>> nhưng có cách nào mình copy đối số khi nhập công thức không? mà không phải là copy công thức, vì trong bảng tính của mình có nhiều chữ quá----->>>>> nếu làm từng công đoạn ----->>> xem univba xong rùi vừa xem vừa ghi lại thì mệt quá vì bảng tính mình làm có nhiều phần :) ( nếu ai có cách nhanh hơn thì chỉ mình, mình vẫn đang làm thủ công) hjhjhj thanks các bác nhiều...
 
Upvote 0
xem univba xong rùi vừa xem vừa ghi lại thì mệt quá vì bảng tính mình làm có nhiều phần :) ( nếu ai có cách nhanh hơn thì chỉ mình, mình vẫn đang làm thủ công) hjhjhj thanks các bác nhiều...
Tôi có 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
Áp dụng:
UniConvert("Gia3i pha1p Excel - Co6ng cu5 tuye65t vo72i cu3a ba5n", "VNI")
sẽ cho kết quả là "Giải pháp Excel - Công cụ tuyệt vời của bạn"
giống như bạn gõ bàn phím kiểu VNI ấy thôi
Hoặc
UniConvert("Giari phasp Excel - Coong cuj tuyeejt vowfi cura bajn", "Telex")
cũng cho kết quả là "Giải pháp Excel - Công cụ tuyệt vời của bạn" nhưng là tương đương với việc gõ bàn phím kiểu Telex
Áp dụng trực tiếp trong của sổ Visual Basic luôn
 
Upvote 0
em cám ơn bác ndu96081631 rất nhều cách của bác quả đúng tuyệt, thay vì em vừa ngồi xem univba vừa gõ lại bây giờ em chỉ cần tắt unikey là ok! ^^
Mình có làm 1 file theo hướng dẫn của bác ndu96081631 ai cần thì xem nhé : ( chỉ cần tắt unikey thui )
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom