Cần các cao nhân chỉ giúp hiển thị tiếng việt msgbox (1 người xem)

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

Tôi tuân thủ nội quy khi đăng bài

tuanserviceabc

Thành viên mới
Tham gia
18/3/26
Bài viết
1
Được thích
0
Các cao nhân giúp mình chỗ này với, mình thay đổi nhiều cách rồi mà không hiển thị hết được tiếng việt
traLoi = MsgBox( _
"Phi" & ChrW(7871) & "u thanh to" & ChrW(225) & "n n" & ChrW(224) & "y c" & ChrW(243) & _
" d" & ChrW(249) & "ng " & ChrW(273) & ChrW(7875) & " ho" & ChrW(224) & "n " & ChrW(7913) & "ng cho phi" & ChrW(7871) & _
"u t" & ChrW(7841) & "m " & ChrW(7913) & "ng kh" & ChrW(244) & "ng?" & vbCrLf & _
"YES = C" & ChrW(243) & " ho" & ChrW(224) & "n " & ChrW(7913) & "ng" & vbCrLf & _
"NO = Thanh to" & ChrW(225) & "n th" & ChrW(432) & ChrW(7901) & "ng" & vbCrLf & _
"CANCEL = H" & ChrW(7911) & "y thao t" & ChrW(225) & "c", _
vbYesNoCancel + vbQuestion, _
"Li" & ChrW(234) & "n k" & ChrW(7871) & "t ho" & ChrW(224) & "n " & ChrW(7913) & "ng")

ma = InputBox( _
"Nh" & ChrW(7853) & "p M" & ChrW(195) & " PHI" & ChrW(7870) & "U T" & ChrW(7840) & "M " & ChrW(7912) & "NG c" & ChrW(7847) & _
"n ho" & ChrW(224) & "n " & ChrW(7913) & "ng." & vbCrLf & vbCrLf & _
"Danh s" & ChrW(225) & "ch phi" & ChrW(7871) & "u ch" & ChrW(432) & "a ho" & ChrW(224) & "n " & ChrW(7913) & "ng:" & vbCrLf & _
ds & vbCrLf & _
"V" & ChrW(237) & " d" & ChrW(7909) & ": TU0001", _
"Ch" & ChrW(7885) & "n m" & ChrW(227) & " t" & ChrW(7841) & "m " & ChrW(7913) & "ng", maMacDinh)

ma = Trim(ma)

mình sữa tới lui nhiều kiểu rồi mà sao vẫn không ra được.
 

File đính kèm

  • VBA 1.jpg
    VBA 1.jpg
    13.1 KB · Đọc: 12
  • VBA.jpg
    VBA.jpg
    67.8 KB · Đọc: 13
Các cách cho bạn:
1. Dùng các hàm MsgBox có sẵn hỗ trợ Unicode gồm:
- Phương thức có sẵn trong VBA:​
JavaScript:
' Yêu cầu bật macro 4.0, chỉ chạy trên Excel
ExecuteExcel4Macro "DOALERT(""hello"",2)"
- Win32 API: MessageBoxW, MessageBoxTimeoutW​
2. Dùng lớp VBA đã được viết sẵn tại bài viết https://www.giaiphapexcel.com/diendan/threads/165516/
3. Tự viết Form, hoặc tự dùng win32 api để sửa cấu trúc trong MsgBox.
4. Dùng lớp có sẵn cTaskDialog64 của fafalone trên github
 
Upvote 0
Các cao nhân giúp mình chỗ này với, mình thay đổi nhiều cách rồi mà không hiển thị hết được tiếng việt
traLoi = MsgBox( _
"Phi" & ChrW(7871) & "u thanh to" & ChrW(225) & "n n" & ChrW(224) & "y c" & ChrW(243) & _
" d" & ChrW(249) & "ng " & ChrW(273) & ChrW(7875) & " ho" & ChrW(224) & "n " & ChrW(7913) & "ng cho phi" & ChrW(7871) & _
"u t" & ChrW(7841) & "m " & ChrW(7913) & "ng kh" & ChrW(244) & "ng?" & vbCrLf & _
"YES = C" & ChrW(243) & " ho" & ChrW(224) & "n " & ChrW(7913) & "ng" & vbCrLf & _
"NO = Thanh to" & ChrW(225) & "n th" & ChrW(432) & ChrW(7901) & "ng" & vbCrLf & _
"CANCEL = H" & ChrW(7911) & "y thao t" & ChrW(225) & "c", _
vbYesNoCancel + vbQuestion, _
"Li" & ChrW(234) & "n k" & ChrW(7871) & "t ho" & ChrW(224) & "n " & ChrW(7913) & "ng")

ma = InputBox( _
"Nh" & ChrW(7853) & "p M" & ChrW(195) & " PHI" & ChrW(7870) & "U T" & ChrW(7840) & "M " & ChrW(7912) & "NG c" & ChrW(7847) & _
"n ho" & ChrW(224) & "n " & ChrW(7913) & "ng." & vbCrLf & vbCrLf & _
"Danh s" & ChrW(225) & "ch phi" & ChrW(7871) & "u ch" & ChrW(432) & "a ho" & ChrW(224) & "n " & ChrW(7913) & "ng:" & vbCrLf & _
ds & vbCrLf & _
"V" & ChrW(237) & " d" & ChrW(7909) & ": TU0001", _
"Ch" & ChrW(7885) & "n m" & ChrW(227) & " t" & ChrW(7841) & "m " & ChrW(7913) & "ng", maMacDinh)

ma = Trim(ma)

mình sữa tới lui nhiều kiểu rồi mà sao vẫn không ra được.
Dùng cái này đi bạn, nó hiển thị tiếng Việt được:
traloi = Application.Assistant.DoAlert("Thông báo!", msg, msoAlertButtonYesNoCancel, 4, 0, 0, 0)

Trong đó, msg là biến chuỗi chứa thông điệp bằng tiếng Việt như bạn đã viết trong bài.
 
Upvote 0
Các cao nhân giúp mình chỗ này với, mình thay đổi nhiều cách rồi mà không hiển thị hết được tiếng việt
traLoi = MsgBox( _
"Phi" & ChrW(7871) & "u thanh to" & ChrW(225) & "n n" & ChrW(224) & "y c" & ChrW(243) & _
" d" & ChrW(249) & "ng " & ChrW(273) & ChrW(7875) & " ho" & ChrW(224) & "n " & ChrW(7913) & "ng cho phi" & ChrW(7871) & _
"u t" & ChrW(7841) & "m " & ChrW(7913) & "ng kh" & ChrW(244) & "ng?" & vbCrLf & _
"YES = C" & ChrW(243) & " ho" & ChrW(224) & "n " & ChrW(7913) & "ng" & vbCrLf & _
"NO = Thanh to" & ChrW(225) & "n th" & ChrW(432) & ChrW(7901) & "ng" & vbCrLf & _
"CANCEL = H" & ChrW(7911) & "y thao t" & ChrW(225) & "c", _
vbYesNoCancel + vbQuestion, _
"Li" & ChrW(234) & "n k" & ChrW(7871) & "t ho" & ChrW(224) & "n " & ChrW(7913) & "ng")

ma = InputBox( _
"Nh" & ChrW(7853) & "p M" & ChrW(195) & " PHI" & ChrW(7870) & "U T" & ChrW(7840) & "M " & ChrW(7912) & "NG c" & ChrW(7847) & _
"n ho" & ChrW(224) & "n " & ChrW(7913) & "ng." & vbCrLf & vbCrLf & _
"Danh s" & ChrW(225) & "ch phi" & ChrW(7871) & "u ch" & ChrW(432) & "a ho" & ChrW(224) & "n " & ChrW(7913) & "ng:" & vbCrLf & _
ds & vbCrLf & _
"V" & ChrW(237) & " d" & ChrW(7909) & ": TU0001", _
"Ch" & ChrW(7885) & "n m" & ChrW(227) & " t" & ChrW(7841) & "m " & ChrW(7913) & "ng", maMacDinh)

ma = Trim(ma)

mình sữa tới lui nhiều kiểu rồi mà sao vẫn không ra được.
Hàm MsgBox của VBA thực chất là hàm MessageBoxA của Win32 API chỉ hỗ trợ ANSI thôi, để hiển thị được tiếng Việt bạn cần phải dùng hàm MessageBoxW.
 
Upvote 0
Dùng cái này đi bạn, nó hiển thị tiếng Việt được:
traloi = Application.Assistant.DoAlert("Thông báo!", msg, msoAlertButtonYesNoCancel, 4, 0, 0, 0)

Trong đó, msg là biến chuỗi chứa thông điệp bằng tiếng Việt như bạn đã viết trong bài.
mình cũng toàn dùng cách này
 
Upvote 0
Khá nhiều chủ đề này rồi, bạn chịu khó tìm kiếm trên diễn đàn nhé.
 
Upvote 0

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

Back
Top Bottom