Hiện tiếng việt khi dùng marco

Liên hệ QC

nguyennb

Thành viên hoạt động
Tham gia
23/10/07
Bài viết
103
Được thích
32
Tôi dùng marco để tự động hóa việc đặt validation cho một số ô. Khi đặt validation, tôi có viết các lời cảnh báo nhập sai dữ liệu là tiếng việt có dấu. Sau khi chạy các marco này thì các chữ tiếng việt đều bị sai hết. Tôi có thử vào code của marco đó và sửa lại với nhiều font và bộ gõ khác nhau, nhưng đều không được. Mọi người giúp mình với
 
Theo mình thì nguyên nhân là do: Trong hộp thoại cảnh báo của validation hổ trợ tiếng việt có dấu mã unicode, khi bạn ghi thao tác này lại bằng macro và lưu lại. Macro trong môi trường VBA không hổ trợ tiếng việt có dấu mã unicode mà chỉ hổ trợ bảng mã VNI-...(Nếu muốn hổ trợ bảng mã unicode thì nhờ các đại cao thủ trong diễn đàn này hổ trợ). Vì vậy nên bạn không thể sửa lại bằng tiếng việt.(Khi bạn sửa được tiếng việt trong VBA bằng bảng mã VNi-..thì hộp thoại cảnh báo của validation không hiển thị được và ngược lại).
 
Upvote 0
Error message của Validation hiển thị đúng tiếng Việt với bảng mã UNICODE, trong VBA lại không hỗ trợ. Vì thế bạn phải "chuyển chèo thành cải lương", ví dụ
Mã:
    With Selection.Validation
        ...
        .ErrorMessage = VNI_TO_UNICODE("Tiếng Việt")
        ...
    End With
với VNI_TO_UNICODE() là hàm chuyển đổi một chuỗi từ VNI sang UNICODE (Cái này bạn sưu tầm của tác giả phamduylong - dùng rất tốt)
 
Upvote 0
Tôi dùng marco để tự động hóa việc đặt validation cho một số ô. Khi đặt validation, tôi có viết các lời cảnh báo nhập sai dữ liệu là tiếng việt có dấu. Sau khi chạy các marco này thì các chữ tiếng việt đều bị sai hết. Tôi có thử vào code của marco đó và sửa lại với nhiều font và bộ gõ khác nhau, nhưng đều không được. Mọi người giúp mình với

Bạn có thể làm 2 cách:
1. Nhập lời cảnh báo vào 1 ô nào đó trên bảng tính chứa macro, ví dụ ô B100 sheet "DATA". Dòng báo lỗi bạn ghi:
.ErrorMessage = ThisWorkbook.Sheets("DATA").Range("B100")
2. Dùng hàm ChrW để ghi mã unicode thay vì nhập trực tiếp chuỗi. Ví dụ nhập "Hỗ trợ viết code Unicode" thì bạn nhập "H" & ChrW(7895) & " tr" & ChrW(7907) & " vi" & ChrW(7871) & "t code Unicode". Bạn có thể dùng hàm để hỗ trợ việc nhập unicode. Xem http://www.giaiphapexcel.com/forum/showpost.php?p=66173&postcount=11
 
Upvote 0
Upvote 0
Web KT

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

Back
Top Bottom