# Tạo công thức đọc số trong Excel-Help

• vnc9999
V

#### vnc9999

##### Thành viên sơ cấp
Các anh chị có thể giúp em tạo một add-in de lam công thức trong excel như sau dược không :

1.Hien em da co add-in nay(Em khong biet cach gui file dinh kem nen em chep doan macro nay ra) :
Option Explicit

Private Const KHONG_DONG As String = "Khoâng ñoàng"
Private Const SO_LON As String = "Soá quaù lôùn"

Private Const TRU As String = "tröø"

Private Const TRAM As String = "traêm"
Private Const MUOI As String = "möôi"
Private Const GIDO As String = "Gì ñoù"

Private Const NGANTY As String = "ngaøn tyû"
Private Const TY As String = "tyû"
Private Const TRIEU As String = "trieäu"
Private Const NGAN As String = "ngaøn"
Private Const DONG As String = "ñoàng"
Private Const XU As String = "xu"

Private Const MOT As String = "moät"
Private Const HAI As String = "hai"
Private Const BA As String = "ba"
Private Const BON As String = "boán"
Private Const NAM As String = "naêm"
Private Const SAU As String = "saùu"
Private Const BAY As String = "baûy"
Private Const TAM As String = "taùm"
Private Const CHIN As String = "chín"

Private Const CHAN As String = "chaün"
Private Const LE As String = "leõ"
Private Const MUOIMOT As String = "möôøi moät"
Private Const MUOIMOTT As String = "möôi moát"

Public Function DichSo(ByVal BaoNhieu As String) As String
On Error GoTo eh
Dim KetQua As String, SoTien As String, Nhom As String, Dich As String
Dim Chu As String, S1 As String, S2 As String, S3 As String
Dim i As Long, j As Long, Vitri As Long, S As Double
Dim Hang, Doc, Dem
If BaoNhieu = 0 Then
DichSo = KHONG_DONG
Else
If Abs(BaoNhieu) >= 1E+15 Then
DichSo = SO_LON
Else
If BaoNhieu <= 0 Then
BaoNhieu = TRU & Space(1)
End If
SoTien = Format(Abs(BaoNhieu), "#################0.00")
SoTien = Right(Space(15) & SoTien, 18)
Hang = Array("None", TRAM, MUOI, GIDO)
Doc = Array("None", NGANTY, TY, TRIEU, NGAN, DONG, XU)
Dem = Array("None", MOT, HAI, BA, BON, NAM, SAU, BAY, TAM, CHIN)
For i = 1 To 6
Nhom = Mid(SoTien, i * 3 - 2, 3)
If Nhom <> Space(3) Then
Select Case Nhom
Case "000":
If i = 5 Then
Chu = DONG & Space(1)
Else
Chu = Space(0)
End If
Case ".00", ",00": Chu = CHAN
Case Else:
S1 = Left(Nhom, 1)
S2 = Mid(Nhom, 2, 1)
S3 = Right(Nhom, 1)
Chu = Space(0)
Hang(3) = Doc(i)
For j = 1 To 3
Dich = Space(0)
S = Val(Mid(Nhom, j, 1))
If S > 0 Then
Dich = Dem(S) & Space(1) & Hang(j) & Space(1)
End If
Select Case j
Case 2 And S = 1: Dich = MUOI & Space(1)
Case 3 And S = 0 And Nhom <> Space(2) & "0": Dich = Hang(j) & Space(1)
Case 3 And S = 5 And S2 <> Space(1) And S2 <> "0": Dich = "l" & Mid(Dich, 2)
Case 2 And S = 0 And S3 <> "0":
If ((S1 >= "1") And (S1 <= "9")) Or ((S1 = "0") And (i = 4)) Then
Dich = LE & Space(1)
End If
End Select
Chu = Chu & Dich
Next j
End Select
Vitri = InStr(1, Chu, MUOIMOT, 1)
If Vitri > 0 Then Mid(Chu, Vitri, 9) = MUOIMOTT
KetQua = KetQua & Chu
End If
Next i
End If
End If
DichSo = UCase(Left(KetQua, 1)) & Mid(KetQua, 2)
Exit Function
eh:
DichSo = "[HASHTAG]#value[/HASHTAG]?"
End Function
2.Add-in nay tao công thức để đọc một số. Ví dụ số : 11,250.00 thì công thức sẽ đọc là : Mừoi một ngàn hai trăm năm mươi đồng chẵn.
3.Các anh chị có thể giúp ? :
-Tạo một công thức sẽ đọc số : 11,250.50 là : Mười một ngàn hai trăm năm mươi đô la Mỹ năm mươi xu
-Một công thức khác : sẽ đọc số : 1,250.50 là One thousand two hundred fifty US Dollars and fifty cent.

Cac anh chi giup mem co the gui theo dia chi mail : huongvn@hcm.vnn.vn
Em xin cam on nhieu.
Vu Nam Chien

M

#### mysterious_girl

##### Thành viên sơ cấp
Trên thư viện đã có add-in đọc số thành chữ bạn vào đó tải về rồi tham khảo nhé.

M

#### mysterious_girl

##### Thành viên sơ cấp
vnc9999 nói:
Cam on ban rat nhieu.Minh da download va dung duoc nhung ung dung nay.
Dạo này sao mọi người toàn gõ tiếng việt ko dấu thế nhỉ???:wall: .Bác ơi, lần sau bác nhớ gõ có dấu nhé,nếu ko bài của bác sẽ bị đưa vào thùng rác đấy.

• HungTV