Cho hỏi về font trong cửa sổ VBA

  • Thread starter QDuc
  • Ngày gửi
QDuc

QDuc

Cao cấp
3/6/06
254
18
18
Biển khơi
Mình có viết thử 1 hàm dịch số 3 chữ số sang chữ. Nhưng khi sử dụng trong trang tính thì không có chữ việt
Option Explicit

Function BaSo(So As Integer) As String
On Error Resume Next
Dim iJ As Integer, SoDau As Integer, Giua As Integer, Cuoi As Integer
Dim Chuoi As String: ReDim MSo(1 To 9) 'As String
If So < 0 Then
BaSo = "âm ": So = Abs(So)
ElseIf So = 0 Then
BaSo = "không ": Exit Function
End If
If So > 999 Then So = So Mod 1000
Chuoi = "một hai ba bốn năm sáu bảy tám chín "
For iJ = 1 To 9
MSo(iJ) = RTrim(Mid(Chuoi, 4 * So - 3, 4)) & " "
Next iJ
SoDau = So \ 100: Cuoi = So Mod 10
Giua = (So \ 10) Mod 10
If SoDau > 0 Then BaSo = BaSo & MSo(SoDau) & "trăm "
If SoDau = 0 Then BaSo = BaSo & "không trăm "

If Giua > 1 Then
BaSo = BaSo & MSo(Giua) & "mươi "
ElseIf Giua = 1 Then
BaSo = BaSo & "mười "
ElseIf Giua = 0 And Cuoi > 0 Then
BaSo = BaSo & "lẽ "
End If

If Giua = 0 And Cuoi = 5 Then
BaSo = BaSo & "năm "
ElseIf Giua = 0 And Cuoi = 1 Then
BaSo = BaSo & "một"
ElseIf Cuoi = 1 And Giua = 1 Then
BaSo = BaSo & "một"
ElseIf Cuoi = 1 And Giua > 1 Then
BaSo = BaSo & "mốt"
ElseIf Cuoi > 1 And Cuoi <> 5 Then
BaSo = BaSo & MSo(Cuoi)
ElseIf Cuoi = 5 Then
BaSo = BaSo & "lăm"
End If

BaSo = RTrim$(BaSo)
End Function

Các bạn cho mình biết cần định dạng Font gì giờ?!
(Ở đây mình đã sửa lại Font rồi!) Máy nhà dùng Unicode.
 
Sửa lần cuối:
Khóa học Quản trị dòng tiền
Đào Việt Cường

Đào Việt Cường

Moderator
22/11/05
400
4
18
Khánh Hòa
Dear QDuc,
-----------
VBA không hỗ trợ UNICODE, để sử dụng được tiếng Việt có dấu trong VBA bạn phải soạn thảo với mã TCVN3 hoặc VNI.
Nếu bạn muốn đọc được tiếng Việt có dấu ngay trong trang soạn thảo code thì vào menu Tools\Options\Editor Format\ Font= .VnArial (Western) với mã soạn thảo là TCVN3 hoặc VNI-Times nếu mã soạn thảo là VNI
 
T

Tuanktcdcn

Lão già ham vui
18/6/04
549
52
28
47
Hà Nội
www.bluesofts.net
QDuc nói:
Mình có viết thử 1 hàm dịch số 3 chữ số sang chữ. Nhưng khi sử dụng trong trang tính thì không có chữ việt
Option Explicit

Function BaSo(So As Integer) As String
On Error Resume Next
Dim iJ As Integer, SoDau As Integer, Giua As Integer, Cuoi As Integer
Dim Chuoi As String: ReDim MSo(1 To 9) 'As String
If So < 0 Then
BaSo = "âm ": So = Abs(So)
ElseIf So = 0 Then
BaSo = "không ": Exit Function
End If
If So > 999 Then So = So Mod 1000
Chuoi = "một hai ba bốn năm sáu bảy tám chín "
For iJ = 1 To 9
MSo(iJ) = RTrim(Mid(Chuoi, 4 * So - 3, 4)) & " "
Next iJ
SoDau = So \ 100: Cuoi = So Mod 10
Giua = (So \ 10) Mod 10
If SoDau > 0 Then BaSo = BaSo & MSo(SoDau) & "trăm "
If SoDau = 0 Then BaSo = BaSo & "không trăm "

If Giua > 1 Then
BaSo = BaSo & MSo(Giua) & "mươi "
ElseIf Giua = 1 Then
BaSo = BaSo & "mười "
ElseIf Giua = 0 And Cuoi > 0 Then
BaSo = BaSo & "lẽ "
End If

If Giua = 0 And Cuoi = 5 Then
BaSo = BaSo & "năm "
ElseIf Giua = 0 And Cuoi = 1 Then
BaSo = BaSo & "một"
ElseIf Cuoi = 1 And Giua = 1 Then
BaSo = BaSo & "một"
ElseIf Cuoi = 1 And Giua > 1 Then
BaSo = BaSo & "mốt"
ElseIf Cuoi > 1 And Cuoi <> 5 Then
BaSo = BaSo & MSo(Cuoi)
ElseIf Cuoi = 5 Then
BaSo = BaSo & "lăm"
End If

BaSo = RTrim$(BaSo)

End Function

Các bạn cho mình biết cần định dạng Font gì giờ?!
(Ở đây mình đã sửa lại Font rồi!) Máy nhà dùng Unicode.

Bạn download trong thư viện Addins file "Convertfont" của OverAC, copy hàm TCVN3ToUNICODE về file Excel của mình.
Trong code bạn bọc chuỗi gõ theo kiểu TCVN3 bằng hàm TCVN3ToUNICODE là Ok.

Chuoi = TCVN3ToUNICODE("một hai ba bốn năm sáu bảy tám chín ")
 

Xem nhiều

Webketoan Zalo OA