Có UDF nào kiểm tra font trong 1 cell là VNI-Times???? (1 người xem)

Liên hệ QC

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

Tường_Vi

Thành viên tiêu biểu
Tham gia
19/4/10
Bài viết
482
Được thích
121
Nghề nghiệp
Luôn tìm kiếm một vị trí tốt hơn
Em xin hỏi có hàm nào tương tự để kiểm tra font chữ trong một Cell là VNI?
Nếu đúng trả về TRUE & sai trả về FALSE?
 
Em xin hỏi có hàm nào tương tự để kiểm tra font chữ trong một Cell là VNI?
Nếu đúng trả về TRUE & sai trả về FALSE?

Cách đơn giản là kiểm tra Font Name (Left(rCel.Font.Name, 3) ="VNI" chẳng hạn)
Tuy nhiên đây cũng không phải là cách chính xác, vì nếu người ta gõ bằng mã VNI nhưng lại cố tình đổi sang font chữ Arial thì sao?
 
Upvote 0
Cách đơn giản là kiểm tra Font Name (Left(rCel.Font.Name, 3) ="VNI" chẳng hạn)
Tuy nhiên đây cũng không phải là cách chính xác, vì nếu người ta gõ bằng mã VNI nhưng lại cố tình đổi sang font chữ Arial thì sao?

Anh NDU cho em hỏi rCel là gì vậy? em phải check thêm mục nào mới dùng được rCel?

gõ bằng mã VNI nhưng lại cố tình đổi sang font chữ Arial thì sao
Ý Anh người ta gõ vào A1 bằng mã VNI, nhưng lại Format cell A1 với font là Arial? Lúc này công thức trên không kiểm tra ra được?

Ý em muốn kiểm tra được text gõ vào A1 có phải gõ bằng mã VNI ko Anh NDU ạh?
 
Upvote 0
Anh NDU cho em hỏi rCel là gì vậy? em phải check thêm mục nào mới dùng được rCel?
rCel là 1 đối số hàm của bạn đấy
Ví dụ:
PHP:
Function CheckVNIFont(ByVal rCel As Range) As Boolean
  Application.Volatile
  CheckVNIFont = (Left(rCel.Font.Name, 3) = "VNI")
End Function

Ý Anh người ta gõ vào A1 bằng mã VNI, nhưng lại Format cell A1 với font là Arial? Lúc này công thức trên không kiểm tra ra được?

Ý em muốn kiểm tra được text gõ vào A1 có phải gõ bằng mã VNI ko Anh NDU ạh?
Kiểm tra bảng mã uh? THUA (ít nhất là THUA với trình độ của tôi) ---> Thử nghĩ ký tự "a" gõ bằng mã Unicode so với ký tự "a" gõ bằng mã VNI có khác gì nhau?
 
Upvote 0
Bạn thử cái này xem sao? Để làm việc tốt hơn có lẽ bổ sung thêm 2 hoặc 3 lần kiểm tra nữa vì một số ký tự vẫn bị trùng với bảng mã khác.
Function isVni(vnRange As Range) As Boolean
Dim vnStr As String, i As Integer, OneStr As String
vnStr = vnRange.Text
For i = 1 To Len(vnStr) - 1
OneStr = Mid(vnStr, i, 1)
If OneStr = "ù" Or OneStr = "ø" Or OneStr = "û" Or OneStr = "õ" Or _
OneStr = "ï" Or OneStr = "ê" Or OneStr = "é" Or OneStr = "è" Or _
OneStr = "ú" Or OneStr = "ü" Or OneStr = "ë" Or OneStr = "â" Or _
OneStr = "á" Or OneStr = "à" Or OneStr = "å" Or OneStr = "ã" Or _
OneStr = "ä" Or OneStr = "Ù" Or OneStr = "Ø" Or OneStr = "Û" Or _
OneStr = "Õ" Or OneStr = "Ï" Or OneStr = "Ê" Or OneStr = "É" Or _
OneStr = "È" Or OneStr = "Ú" Or OneStr = "Ü" Or OneStr = "Ë" Or _
OneStr = "Â" Or OneStr = "Á" Or OneStr = "À" Or OneStr = "Å" Or _
OneStr = "Ã" Or OneStr = "Ä" Then
isVni = True
Exit Function
Else
isVni = False
End If
Next
End Function
 
Upvote 0
rCel là 1 đối số hàm của bạn đấy
Ví dụ:
PHP:
Function CheckVNIFont(ByVal rCel As Range) As Boolean
  Application.Volatile
  CheckVNIFont = (Left(rCel.Font.Name, 3) = "VNI")
End Function


Kiểm tra bảng mã uh? THUA (ít nhất là THUA với trình độ của tôi) ---> Thử nghĩ ký tự "a" gõ bằng mã Unicode so với ký tự "a" gõ bằng mã VNI có khác gì nhau?

Cám ơn Anh NDU
Em chỉ kiểm tra những chữ có dấu thôi. Những chữ không dấu không bị ảnh hưởng Anh ạ
Ví dụ: gõ Ô bằng VNI, nó sẽ hiển thị là

Em hỏi thêm một chút 02 thuộc tính sau đây khác gì nhau
Ví dụ: cell A1 em gõ bằng Mã VNI, format format
PHP:
?activecell.Font.name
Arial
?activecell.Font.Parent
oâ
?activecell.Value
oâ

Cho em hỏi thuộc tính Font.parent & .value có gì khác nhau?
 
Lần chỉnh sửa cuối:
Upvote 0
rCel là 1 đối số hàm của bạn đấy
Ví dụ:
PHP:
Function CheckVNIFont(ByVal rCel As Range) As Boolean
  Application.Volatile
  CheckVNIFont = (Left(rCel.Font.Name, 3) = "VNI")
End Function


Kiểm tra bảng mã uh? THUA (ít nhất là THUA với trình độ của tôi) ---> Thử nghĩ ký tự "a" gõ bằng mã Unicode so với ký tự "a" gõ bằng mã VNI có khác gì nhau?

Cám ơn Anh NDU
Em chỉ kiểm tra những chữ có dấu thôi. Những chữ không dấu không bị ảnh hưởng Anh ạ
Ví dụ: gõ Ô bằng VNI, nó sẽ hiển thị là

Em hỏi thêm một chút 02 thuộc tính sau đây khác gì nhau
Ví dụ: cell A1 em gõ bằng Mã VNI, format cell là font Arial
PHP:
?activecell.Font.name
Arial
?activecell.Font.Parent
oâ
?activecell.Value
oâ

Cho em hỏi thuộc tính Font.parent & .value có gì khác nhau?
 
Upvote 0
Em hỏi thêm một chút 02 thuộc tính sau đây khác gì nhau
Ví dụ: cell A1 em gõ bằng Mã VNI, format format
PHP:
?activecell.Font.name
Arial
?activecell.Font.Parent
oâ
?activecell.Value
oâ

Cho em hỏi thuộc tính Font.parent & .value có gì khác nhau?
Cái này nói hoài rồi!
Parent là CHA MẸ
Activecell.Font.Parent nghĩa là CHA MẸ của thằng ActiveCell.Font thì cũng chính là ActiveCell thôi <==> ActiveCell.Value
Ví dụ khác:
Sheet1.Range("C1").Value = "ndu"
Vậy
Sheet1.Range("C1").Parent chính là CHA MẸ của thằng Range("C1"), cũng chính là Sheet1
Vậy thôi
 
Upvote 0
Bạn thử cái này xem sao? Để làm việc tốt hơn có lẽ bổ sung thêm 2 hoặc 3 lần kiểm tra nữa vì một số ký tự vẫn bị trùng với bảng mã khác.
PHP:
Function isVni(vnRange As Range) As Boolean
        Dim vnStr As String, i As Integer, OneStr As String
        vnStr = vnRange.Text
        For i = 1 To Len(vnStr) - 1
        OneStr = Mid(vnStr, i, 1)
        If OneStr = "ù" Or OneStr = "ø" Or OneStr = "û" Or OneStr = "õ" Or _
            OneStr = "ï" Or OneStr = "ê" Or OneStr = "é" Or OneStr = "è" Or _
            OneStr = "ú" Or OneStr = "ü" Or OneStr = "ë" Or OneStr = "â" Or _
            OneStr = "á" Or OneStr = "à" Or OneStr = "å" Or OneStr = "ã" Or _
            OneStr = "ä" Or OneStr = "Ù" Or OneStr = "Ø" Or OneStr = "Û" Or _
            OneStr = "Õ" Or OneStr = "Ï" Or OneStr = "Ê" Or OneStr = "É" Or _
            OneStr = "È" Or OneStr = "Ú" Or OneStr = "Ü" Or OneStr = "Ë" Or _
            OneStr = "Â" Or OneStr = "Á" Or OneStr = "À" Or OneStr = "Å" Or _
            OneStr = "Ã" Or OneStr = "Ä" Then
                isVni = True
                Exit Function
            Else
                isVni = False
            End If
        Next
End Function
Cám ơn An Hướng
Đoạn code trên e thử không được. Anh xem file nhé
 

File đính kèm

Upvote 0
Tôi đã nói rồi, cần duyệt qua 2-3 chữ nữa thì mới có thể tạm xác định được có phải là Vni hay không. Còn mỗi chữ thế này thì khó đấy
 
Upvote 0
Tôi đã nói rồi, cần duyệt qua 2-3 chữ nữa thì mới có thể tạm xác định được có phải là Vni hay không. Còn mỗi chữ thế này thì khó đấy

Em gõ ok rồi. Tuy nhiên Cell A4, em gõ bằng Unicode, nó vẫn trả về TRUE a Hướng ơi
 

File đính kèm

Upvote 0
Em gõ ok rồi. Tuy nhiên Cell A4, em gõ bằng Unicode, nó vẫn trả về TRUE a Hướng ơi
Như đã nói ở trên, có vài ký tự TRÙNG giữa các bảng mã ---> Gặp trường hợp này thì THUA thôi
Nói chung là chẳng có phương pháp nào chính xác 100% để nhận diện bảng mã cả
 
Upvote 0
Như đã nói ở trên, có vài ký tự TRÙNG giữa các bảng mã ---> Gặp trường hợp này thì THUA thôi
Nói chung là chẳng có phương pháp nào chính xác 100% để nhận diện bảng mã cả

Phần mềm cty em cho phép import dữ liệu từ file excel. Nhưng nếu dòng nào có cell (dạng string) chứa ký tự có dấu không được gõ bởi Mã VNI - thì nó báo lỗi không cho import dữ liệu
Em nghĩ phải có cách nào đó để phát hiện ra string không được gõ bằng mã VNI. (e đang gửi mail cho người viết phần mềm này, ko biết người ta có chia sẻ không?)

Nhưng dù sao thông qua bài này em cũng học hỏi thêm rất nhiều

Cám ơn Anh
 
Upvote 0
Phần mềm cty em cho phép import dữ liệu từ file excel. Nhưng nếu dòng nào có cell (dạng string) chứa ký tự có dấu không được gõ bởi Mã VNI - thì nó báo lỗi không cho import dữ liệu
Em nghĩ phải có cách nào đó để phát hiện ra string không được gõ bằng mã VNI. (e đang gửi mail cho người viết phần mềm này, ko biết người ta có chia sẻ không?)

Nhưng dù sao thông qua bài này em cũng học hỏi thêm rất nhiều

Cám ơn Anh

Không có bất cứ cách nào chắc ăn 100% đâu
Mà nghĩ cũng lạ! Phần mềm do ai viết thì người đó phải chịu trách nhiệm chứ, tức ai viết phần mềm thì phải "theo" dữ liệu của mình, có đâu bạn phải "theo" người ta
Tôi nghĩ bạn nên đề nghị người ta viết trên nền Unicode thì hơn (VNI cái quỷ gì...)
 
Upvote 0
Không có bất cứ cách nào chắc ăn 100% đâu
Mà nghĩ cũng lạ! Phần mềm do ai viết thì người đó phải chịu trách nhiệm chứ, tức ai viết phần mềm thì phải "theo" dữ liệu của mình, có đâu bạn phải "theo" người ta
Tôi nghĩ bạn nên đề nghị người ta viết trên nền Unicode thì hơn (VNI cái quỷ gì...)

Từ hồi em vào công ty, phần mềm này đã phổ biến font VNI được 3 năm và áp dụng dùng cho tất cả các chi nhánh tại VN.
Nhưng phải gõ lạch cạch từng dữ liệu vào phần mềm

Em nhờ cho người thiết kế phần mềm tạo cho cách import dữ liệu qua excel để tiết kiệm thời gian, nhưng thỉnh thoảng anh em trong công ty vẫn gõ nhầm font UNICODE. Lúc import dữ liệu dòng đó sẽ bị báo lỗi và sửa thành VNI để import lại

Hi hi...Dù sao thế cũng ok lắm rồi ạh...cám ơn Anh
 
Upvote 0
Web KT

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

Back
Top Bottom