Nhờ giải thích giúp vấn đề hiển thị chữ Việt

Liên hệ QC

GiaoLuu

Thành viên mới
Tham gia
14/11/12
Bài viết
10
Được thích
12
Cảm phiềm mọi người giải thích giúp lý do tại sao, khi gán trực tiệp mã chữ được mã hoá cho ô địa chỉ thì nó chuyển sang thành chữ Việt, còn khi gán bằng ô đĩa chỉ có mã chữ được mã hoá nó lại hiện thị nguyên trang ban đâu
ví dụ
tại ô B1 có đoạn mã sau :
"T" & ChrW(244) & "i mu" & ChrW(7889) & "n hi" & ChrW(234) & "n th" & ChrW(7883) & " ch" & ChrW(7919) & " vi" & ChrW(7879) & "t "
[GPECODE=vb]Sub Test1() With Sheets(1)
.Range("a6").Value = "T" & ChrW(244) & "i mu" & ChrW(7889) & "n hi" & ChrW(234) & "n th" & ChrW(7883) & " ch" & ChrW(7919) & " vi" & ChrW(7879) & "t " ' đoạn mã được gán trực tiếp cho Ô A6
.Range("a8").Value = .Range("b1").Value ' đoạn mã được gán thông qua ô địa chỉ "B1"
End With
End Sub


[/GPECODE]
sau khi chảy sub thì ô A6 hiện thị chữ Việt đúng yêu cầu còn A8 vẫn là đoạn mã trên, mong được mọi người giải thích giúp, và biện pháp xử lý
thanks
 
Lần chỉnh sửa cuối:
Cảm phiềm mọi người giải thích giúp lý do tại sao, khi gán trực tiệp mã chữ được mã hoá cho ô địa chỉ thì nó chuyển sang thành chữ Việt, còn khi gán bằng ô đĩa chỉ có mã chữ được mã hoá nó lại hiện thị nguyên trang ban đâu
ví dụ
tại ô B1 có đoạn mã sau :
[GPECODE=vb]Sub Test1() With Sheets(1)
.Range("a6").Value = "T" & ChrW(244) & "i mu" & ChrW(7889) & "n hi" & ChrW(234) & "n th" & ChrW(7883) & " ch" & ChrW(7919) & " vi" & ChrW(7879) & "t " ' đoạn mã được gán trực tiếp cho Ô A6
.Range("a8").Value = .Range("b1").Value ' đoạn mã được gán thông qua ô địa chỉ "B1"
End With
End Sub


[/GPECODE]
sau khi chảy sub thì ô A6 hiện thị chữ Việt đúng yêu cầu còn A8 vẫn là đoạn mã trên, mong được mọi người giải thích giúp, và biện pháp xử lý
thanks

Có 2 vấn đề:

1.Trên sheet thì Excel không hiểu ChrW là cái gì nên coi nó là chuỗi 4 ký tự là "C", "h", "r" và "W". Nó không còn là tên hàm nữa. Nhưng trên sheet thì Excel hiểu char là hàm. Trên sheet bạn có thể dùng char nhưng bạn chỉ có thể nhập code từ 0 tới 255, tức bạn không dùng với ký tự Việt có dấu ̣được vì char trả về ký tự ANSI.

2. Ta lấy vd. chuỗi ngắn hơn cho dễ giải thích. Ta dùng chuỗi Ta - Ta về ta tắm ao ta
Nếu bạn có Range("a6").Value = "Ta" thì có nghĩa là trong A6 có chuỗi gồm 2 ký tự là T và a
Nếu bạn nhập, gõ bằng tay vào B1 chuỗi "Ta" thì bạn có trong B1 chuỗi gồm 4 ký tư là ", T, a và "

Vậy nếu dùng tiếng Việt không dấu thì trong B1 bạn phải GÕ Ta - tức gõ lần lượt T, a - chứ không phải là gõ "Ta" - tức lần lượt ", T, a, "

Trong VBA thì chuỗi bạn cho vào cặp dấu "" nhưng gõ trên sheet thì phải bỏ những dấu "

Biện pháp xử lý? Thì gõ vào B1 theo cách thường ngày viết văn bản thôi. Tức dùng vd. Unikey gõ bình thường, không gõ ký tự ", không dùng hàm. Đơn giản là gõ bằng Unikey vào B1 chuỗi Tôi muốn hiên thị chữ việt. Thế thôi.
 
Upvote 0
Web KT
Back
Top Bottom