|
Đây
trả lời: Trong
VBA, có hàm gọi là StrConv cho phép chuyển đổi một
chuỗi ký tự bất kỳ thành một chuỗi tương tự, nhưng
có chữ cái đầu của mỗi từ là chữ hoa. Ví dụ, bạn vẽ
hai TextBox có tên Text1 và Text2, gán thuộc tính
ControlSource của Text2 là : =StrConv([Text1], 3).
Khi gõ dữ liệu vào ô Text1, ô Text2 sẽ chứa kết quả
chuyển đổi. Nếu sử dụng tiếng Việt, tôi thấy chỉ
phông tiếng Việt VNI-2 byte là đổi đúng.
Bạn có thể sử dụng hàm ProperCase() trình bày ở đoạn
mã 1 để thu được kết quả đúng với phông Unicode và
phông tiếng Việt VNI-2 byte. Để thử dùng hàm đó, bạn
gán thuộc tính ControlSource của Text2 là:
=ProperCase([Text1]). |
|
Public Function ProperCase(strText As String) As
String
On Error GoTo Err_ProperCase
Dim I As Integer, intLen As Integer, strTemp As
String, strFinal As String
Dim isSpace As Boolean
strTemp = LCase(Trim(strText))
intLen = Len(Trim(strText))
strFinal = String(intLen, " ")
isSpace = True
For I = 1 To intLen
If Mid(strTemp, I, 1) = Chr(32) Then
strFinal = Mid(strFinal, 1, I - 1) & Chr(32) &
Mid(strFinal, I + 1)
isSpace = True
ElseIf isSpace Then
strFinal = Mid(strFinal, 1, I - 1) &
UCase(Mid(strTemp, I, 1)) & Mid(strFinal, I + 1)
isSpace = False
Else
strFinal = Mid(strFinal, 1, I - 1) &
Mid(strTemp, I, 1) & Mid(strFinal, I + 1)
End If
Next I
ProperCase = strFinal
Exit_ProperCase:
Exit Function
Err_ProperCase:
MsgBox Err.Description & vbCrLf & strText,
vbInformation, "ProperCase function"
End Function |