Phân biệt chữ Việt với chữ Nôm

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

Anhduong2015

Thành viên chính thức
Tham gia
29/7/21
Bài viết
53
Được thích
12
Em chào anh/chị
- Em mò mẫm mấy hôm nay nhưng kết quả không được nên xin nhờ sự giúp đỡ, cụ thể em mong muốn 1 đoạn code quét qua 1 vùng dữ liệu.
+ Nếu chữ nào là chữ việt nam hoặc là số thì size chữ là 30.
+ Nếu chữ nào không phải chữ việt nam thì size chữ là 5.
1722767284388.png

- Rất mong nhận được hỗ trợ giúp đỡ ạ,
Em cám ơn.
 

File đính kèm

  • tim chu.xlsm
    24.2 KB · Đọc: 9
Tiếng Anh thì sao, có phân biệt không?
Code sau đây chỉ phân biệt chữ nôm (ASC=63) và còn lại nhé
PHP:
Option Explicit
Sub test()
Application.ScreenUpdating = False
Dim rng As Range, c As Range
Set rng = Sheet2.Range("A3:H28")
For Each c In rng
    On Error Resume Next
    If Not IsNumeric(c) And Asc(c) = 63 Then
        c.Font.Size = 5
    Else
        c.Font.Size = 16
    End If
    On Error GoTo 0
Next
Application.ScreenUpdating = True
End Sub
 

File đính kèm

  • tim chu.xlsm
    25.6 KB · Đọc: 2
Upvote 0
Bạn có thể tham khảo hàm FindFormat bên bài viết link bên dưới.
dải chữ Hán Nôm gồm các bộ mã hóa:

Nhập vào ô N4 là khoanh vùng bộ mã Hán Nôm, định dạng kích thước ô là 5:
Nhập vào ô N5 là không thuộc bộ mã Hán Nôm, định dạng kích thước ô là 30:
(^[^\u2710-\uFFFF]+)

Bạn nhập hàm vào ô bất kì không dùng đến:
= FindFormat(
N4:N5,
A3:H28,
fff_Regex()
)

Nếu có từ nằm ngoài dải chữ, bạn dùng lệnh dưới đây để lấy mã trong Immediate VBIDE:
?"\u" & hex(ascw(selection) and 65535)

 

File đính kèm

  • tim chu (1).xlsm
    61.3 KB · Đọc: 4
Lần chỉnh sửa cuối:
Upvote 0
@bebo021999 anh chắc đã nhầm giữa AscW hỗ trợ Unicode và Asc chỉ hỗ trợ ASCII, tức là các ký tự bộ nhớ vượt quá 255 sẽ trả về 63 hoặc có thể là giá trị khác.

Asc("Ấn") cũng là 63.

Trong trường hợp này (AscW(c) And 65535) > 9000 sẽ phù hợp.
Cách khác nhập giá trị là Hexadecimal:
(AscW(c) And &HFFFF&) > 9000

Sử dụng toán tử AND với số lũy thừa cơ số 2 giảm đi 1 để tạo nên phép tính bitwise sẽ đặt giá trị của nó luôn dương để so sánh.
 
Lần chỉnh sửa cuối:
Upvote 0
Tiếng Anh thì sao, có phân biệt không?
Code sau đây chỉ phân biệt chữ nôm (ASC=63) và còn lại nhé
PHP:
Option Explicit
Sub test()
Application.ScreenUpdating = False
Dim rng As Range, c As Range
Set rng = Sheet2.Range("A3:H28")
For Each c In rng
    On Error Resume Next
    If Not IsNumeric(c) And Asc(c) = 63 Then
        c.Font.Size = 5
    Else
        c.Font.Size = 16
    End If
    On Error GoTo 0
Next
Application.ScreenUpdating = True
End Sub
Code chạy đúng mong muốn em rồi ạ, chân thành cảm ơn anh chúc anh nhiều sức khoẻ ạ.
Bài đã được tự động gộp:

Bạn có thể tham khảo hàm FindFormat bên bài viết link bên dưới.
dải chữ Hán Nôm gồm các bộ mã hóa:

Nhập vào ô N4 là khoanh vùng bộ mã Hán Nôm, định dạng kích thước ô là 5:

Nhập vào ô N5 là không thuộc bộ mã Hán Nôm, định dạng kích thước ô là 30:
(^[^\u2710-\uFFFF]+)

Bạn nhập hàm vào ô bất kì không dùng đến:


Nếu có từ nằm ngoài giải chữ, bạn dùng lệnh dưới đây để lấy mã trong Immediate VBIDE:
?"\u" & hex(ascw(selection) and 65535)

code hay quá anh. Chân thành cám ơn anh nhiều ạ.
 
Upvote 0
Web KT

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

Back
Top Bottom