Unicode sao dò được

Liên hệ QC

rockydatalone

Thành viên mới
Tham gia
3/4/07
Bài viết
48
Được thích
9
Các bác ơi, có cách nào mà VBA dò được font của thằng Unicode không mấy bác, vì bây giờ phổ biến là dùng Unicode chứ không xài VNI nữa hic hic, VBA thiệt chơi ác quá **~**

Mình muốn hỏi cách nào mà VBA có thể tìm được chuỗi trong Excel (mình đánh kiểu Unicode font chữ Times New Romman)
 
Chỉnh sửa lần cuối bởi điều hành viên:
Dùng chức năng Find của Excel, nếu thích VBA thì dùng VBA gọi chức năng Find.
 
Upvote 0
Các bác ơi, có cách nào mà VBA dò được font của thằng Unicode không mấy bác, vì bây giờ phổ biến là dùng Unicode chứ không xài VNI nữa hic hic, VBA thiệt chơi ác quá **~**

Để chuyển đổi Font từ mã này qua mã khác thì có.

Chứ dò xem là cell đó sử dụng Font gì cho ra tiếng Việt thì . . chịu.

Đơn giản : khi bạn gõ giải pháp excel thì dù bạn có format theo font nào thì code của các ký tự vẫn như thế.

Thân!
 
Upvote 0
Để chuyển đổi Font từ mã này qua mã khác thì có.

Chứ dò xem là cell đó sử dụng Font gì cho ra tiếng Việt thì . . chịu.

Đơn giản : khi bạn gõ giải pháp excel thì dù bạn có format theo font nào thì code của các ký tự vẫn như thế.

Thân!

Vậy bác có cách nào chuyển code không (từ Unicode sang VNI). Lý do mình làm cái này là khi mình đánh ở ô A1 là THỬ (kiểu Unicode) thì khi nhấn Command button VBA tìm thấy đúng chữ THỬ (cũng là code Unicode) thì sẽ thông báo trùng.

Dùng chức năng Find của Excel, nếu thích VBA thì dùng VBA gọi chức năng Find.
Thân!
Gửi bác, mình có dùng thử find trong VBA, nhưng khi đến tham số WHAT mình đánh theo Unicode (font chữ Times News Romman) thì nó không hiện chữ THỬ mà nó hiện TH? (vậy mới ác chứ). Mong các bác giúp đỡ.
 
Upvote 0
Lý do mình làm cái này là khi mình đánh ở ô A1 là THỬ (kiểu Unicode) thì khi nhấn Command button VBA tìm thấy đúng chữ THỬ (cũng là code Unicode) thì sẽ thông báo trùng.
Bạn nói rõ xem, bạn tìm chữ thứ này ở đâu vậy? Tìm ở cột nào, vùng nào, hay trang tính nào hoặc tìm trong sọt rác?
Một khi bạn nói rõ, sẽ được ngay;
Tôi ví dụ
PHP:
Dim Rng As Range
With Range([A1], Cells([B65500].End(Xlup).Row, "D")
 Set Rng = .FIND(what:= [A1].Value, LookIn:= xlValues, LookAt:=xlWhole)
 If Not Rng Is Nothing Then Msgbox "Co Roi", , "GPE.COM"
' . . .  .'
End With
 
Upvote 0
Bạn nói rõ xem, bạn tìm chữ thứ này ở đâu vậy? Tìm ở cột nào, vùng nào, hay trang tính nào hoặc tìm trong sọt rác?
Một khi bạn nói rõ, sẽ được ngay;
Chắc mình nói không rõ ý, sorry các bác:
Mình ví dụ:
1/Tại ô A1 mình đánh chữ Thử.
2/Sau đó mình tạo nút Command button
3/Trong VBA mình viết: Nếu ô A1 bằng chữ Thử thì Msbox báo trùng.
Ví dụ trên, mình đã test với code VNI Windows thì OK.
Còn Unicode thì nó không tìm được lý do trong VBA không đánh được Unicode, nên khi mình đánh chữ Thử trong VBA thì nó hiển thị Th? (gút mắc chỗ này) :=\+ :=\+
 
Upvote 0
Chắc mình nói không rõ ý, sorry các bác:
Mình ví dụ:
1/Tại ô A1 mình đánh chữ Thử.
2/Sau đó mình tạo nút Command button
3/Trong VBA mình viết: Nếu ô A1 bằng chữ Thử thì Msbox báo trùng.
Ví dụ trên, mình đã test với code VNI Windows thì OK.
Còn Unicode thì nó không tìm được lý do trong VBA không đánh được Unicode, nên khi mình đánh chữ Thử trong VBA thì nó hiển thị Th? (gút mắc chỗ này) :=\+ :=\+

Nếu ô A1="Thử" (unicode)
Trong VBA bạn phải nhập VNI, sau đó dùng function ConvertToUni(), xem bài anh TuânVNU, ví dụ: textBox="Thöû" (Font VNI) sau đó
TextBox=ConvertToUni(TextBox)=ConvertToUni("Thöû")="Thử" (unicode)
Lúc này bạn muốn tìm gì thì tìm.
Mình chỉ biết có vậy.
 
Upvote 0
Bác ThuNghi ơi, bác có thể cho link nói về hàm ConvertToUNI không, mình không thấy trong VBA
 
Upvote 0
Tôi thì không sử dụng VNI bao giờ, trong trường hợp này tôi thường sử dụng mã UTF8 cho phần dưới VBA(UTF-8 Literal), rồi dùng hàm chuyển đổi giữa UTF8 và Unicode. Bạn tham khảo thêm 2 hàm convert từ UTF8 và Unicode qua nhau xem có đáp ứng được yêu cầu của bạn không nhé.
 

File đính kèm

Upvote 0
Bác ThuNghi ơi, bác có thể cho link nói về hàm ConvertToUNI không, mình không thấy trong VBA
Đây là code của anh Tuân, và mình làm 1 file ví dụ thử, trong VBA (code) bạn nhập chữ VNI-Times và chạy code TimVNI thử.
Và tiện đây xin hỏi các bạn như sau
Tôi có code
PHP:
Sub TimVNI()
Dim iText As String
Dim Data As Range, iPosition As Long
iText = "böôûi"
iText = VNI(iText)
Set Data = [a1:a100]
    iPosition = WorksheetFunction.CountIf(Data, iText)
    MsgBox iPosition
End Sub
Tôi muốn thay
iText là string
WorksheetFunction.CountIf(Data, iText)
thành
WorksheetFunction.Match(iText,Data)
Mà sao cứ báo lỗi. vậy có cách gì không.
Nếu
Dim iNo as long
WorksheetFunction.Match(iNo,Data) thì OK

Cám ơn!
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom