Chuyển đổi số sang chữ trong Excel (1 người xem)

Liên hệ QC

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

vominhtien1988

Thành viên mới
Tham gia
1/4/19
Bài viết
8
Được thích
1
Mình muốn chuyển đổi dạng số sang chữ trong Excel thay vì phải gõ chứ rất mất thời gian
VD: 217711
Mình đang sử dụng office 2010, nhờ các bạn hướng dẫn giúp.
Xin cảm ơn!
 
Máy bạn có cho phép dùng macro hay VBA không?
Các máy khác cùng sử dụng file này có cho sử dụng như bạn hay không?
 
File này dùng công thức để đọc chữ, không cần dùng macro.
 

File đính kèm

File này dùng công thức để đọc chữ, không cần dùng macro.
Khá nhiều công thức trong file, nhưng dù sao cũng cảm ơn bạn.
Bài đã được tự động gộp:

Máy bạn có cho phép dùng macro hay VBA không?
Các máy khác cùng sử dụng file này có cho sử dụng như bạn hay không?
Sử dụng nó có ảnh hưởng gì không bạn, nếu không bạn chỉ mình cách dùng với.
 
Khá nhiều công thức trong file, nhưng dù sao cũng cảm ơn bạn.
Bài đã được tự động gộp:


Sử dụng nó có ảnh hưởng gì không bạn, nếu không bạn chỉ mình cách dùng với.
Nếu bạn dùng macro thì khi mở file ở máy không cho sử dụng sẽ không hiện ra số tiền bằng chữ mà báo lỗi #Name. Nếu bạn chỉ sử dụng để in thì không vấn đề gì.
Mã:
Public Function bc(ByVal NumCurrency As Currency) As String
'Doi bang so ra bang chu tieng Viet Unicode
If NumCurrency = 0 Then
bc = "Không " & ChrW(273) & ChrW(7891) & "ng"
Exit Function
End If
If NumCurrency > 922337203685477# Then ' S? l?n nh?t c?a lo?i CURRENCY
bc = "Kh«ng ®æi ®îc sè l¬n h¬n hon 922,337,203,685,477"
Exit Function
End If
Static CharVND(9) As String, BangChu As String, i As Integer
Dim SoLe, SoDoi As Integer, PhanChan, Ten As String
Dim DonViTien As String, DonViLe As String
Dim NganTy As Integer, Ty As Integer, Trieu As Integer, Ngan As Integer
Dim Dong As Integer, Tram As Integer, Muoi As Integer, DonVi As Integer
DonViTien = ChrW(273) & ChrW(7891) & "ng"
DonViLe = "xu"
CharVND(1) = "m" & ChrW(7897) & "t"
CharVND(2) = "hai"
CharVND(3) = "ba"
CharVND(4) = "b" & ChrW(7889) & "n"
CharVND(5) = "n" & ChrW(259) & "m"
CharVND(6) = "sáu"
CharVND(7) = "b" & ChrW(7843) & "y"
CharVND(8) = "tám"
CharVND(9) = "chín"

SoLe = Int((NumCurrency - Int(NumCurrency)) * 100) '2 k? sè lÎ
PhanChan = Trim$(Str$(Int(NumCurrency)))
PhanChan = Space(15 - Len(PhanChan)) + PhanChan

NganTy = Val(Left(PhanChan, 3))
Ty = Val(Mid$(PhanChan, 4, 3))
Trieu = Val(Mid$(PhanChan, 7, 3))
Ngan = Val(Mid$(PhanChan, 10, 3))
Dong = Val(Mid$(PhanChan, 13, 3))
If NganTy = 0 And Ty = 0 And Trieu = 0 And Ngan = 0 And Dong = 0 Then
BangChu = "không " + DonViTien + " "
i = 5
Else
BangChu = ""
i = 0
End If
While i <= 5
Select Case i
Case 0
SoDoi = NganTy
Ten = "ngàn t" & ChrW(7927)
Case 1
SoDoi = Ty
Ten = "t" & ChrW(7927)
Case 2
SoDoi = Trieu
Ten = "tri" & ChrW(7879) & "u"
Case 3
SoDoi = Ngan
Ten = "ngàn"
Case 4
SoDoi = Dong
Ten = DonViTien
Case 5
SoDoi = SoLe
Ten = DonViLe
End Select
If SoDoi <> 0 Then
Tram = Int(SoDoi / 100)
Muoi = Int((SoDoi - Tram * 100) / 10)
DonVi = (SoDoi - Tram * 100) - Muoi * 10
BangChu = Trim(BangChu) + IIf(Len(BangChu) = 0, "", ", ") + _
IIf(Tram <> 0, Trim(CharVND(Tram)) + " tr" & ChrW(259) & "m ", "")
If Muoi = 0 And Tram <> 0 And DonVi <> 0 Then
BangChu = BangChu + "l" & ChrW(7867) & " "
Else
If Muoi <> 0 Then
BangChu = BangChu + IIf(Muoi <> 0 And Muoi <> 1, _
Trim(CharVND(Muoi)) + " m" & ChrW(432) & ChrW(417) & "i ", "m" & ChrW(432) & ChrW(7901) & "i ")
End If
End If

If Muoi <> 0 And DonVi = 5 Then
BangChu = BangChu + "l" & ChrW(259) & "m " + Ten + " "
Else
If Muoi > 1 And DonVi = 1 Then
BangChu = BangChu + "m" & ChrW(7889) & "t " + Ten + " "
Else
BangChu = BangChu + IIf(DonVi <> 0, Trim(CharVND(DonVi)) + " " + Ten + " ", Ten + " ")
End If
End If
Else
BangChu = BangChu + IIf(i = 4, DonViTien + " ", "")
End If
i = i + 1
Wend
If SoLe = 0 Then
BangChu = BangChu + "ch" & ChrW(7861) & "n"
End If
Mid$(BangChu, 1, 1) = UCase$(Mid$(BangChu, 1, 1))
bc = BangChu
End Function

Function bctcvn3(ByVal NumCurrency As Currency) As String
'Doi bang so ra bang chu Tieng Viet TCVN3
If NumCurrency = 0 Then
bctcvn3 = "Kh«ng ®ång"
Exit Function
End If
If NumCurrency > 922337203685477# Then ' S? l?n nh?t c?a lo?i CURRENCY
bctcvn3 = "Kh«ng ®æi ®îc sè l¬n h¬n hon 922,337,203,685,477"
Exit Function
End If
Static CharVND(9) As String, BangChu As String, i As Integer
Dim SoLe, SoDoi As Integer, PhanChan, Ten As String
Dim DonViTien As String, DonViLe As String
Dim NganTy As Integer, Ty As Integer, Trieu As Integer, Ngan As Integer
Dim Dong As Integer, Tram As Integer, Muoi As Integer, DonVi As Integer
DonViTien = "®ång"
DonViLe = "xu"
CharVND(1) = "mét"
CharVND(2) = "hai"
CharVND(3) = "ba"
CharVND(4) = "bèn"
CharVND(5) = "n¨m"
CharVND(6) = "s¸u"
CharVND(7) = "b¶y"
CharVND(8) = "t¸m"
CharVND(9) = "ch?n"

SoLe = Int((NumCurrency - Int(NumCurrency)) * 100) '2 k? sè lÎ
PhanChan = Trim$(Str$(Int(NumCurrency)))
PhanChan = Space(15 - Len(PhanChan)) + PhanChan

NganTy = Val(Left(PhanChan, 3))
Ty = Val(Mid$(PhanChan, 4, 3))
Trieu = Val(Mid$(PhanChan, 7, 3))
Ngan = Val(Mid$(PhanChan, 10, 3))
Dong = Val(Mid$(PhanChan, 13, 3))
If NganTy = 0 And Ty = 0 And Trieu = 0 And Ngan = 0 And Dong = 0 Then
BangChu = "kh«ng " + DonViTien + " "
i = 5
Else
BangChu = ""
i = 0
End If
While i <= 5
Select Case i
Case 0
SoDoi = NganTy
Ten = "ngµn tû"
Case 1
SoDoi = Ty
Ten = "tû"
Case 2
SoDoi = Trieu
Ten = "triÖu"
Case 3
SoDoi = Ngan
Ten = "ngµn"
Case 4
SoDoi = Dong
Ten = DonViTien
Case 5
SoDoi = SoLe
Ten = DonViLe
End Select
If SoDoi <> 0 Then
Tram = Int(SoDoi / 100)
Muoi = Int((SoDoi - Tram * 100) / 10)
DonVi = (SoDoi - Tram * 100) - Muoi * 10
BangChu = Trim(BangChu) + IIf(Len(BangChu) = 0, "", ", ") + _
IIf(Tram <> 0, Trim(CharVND(Tram)) + " tr¨m ", "")
If Muoi = 0 And Tram <> 0 And DonVi <> 0 Then
BangChu = BangChu + "lÎ "
Else
If Muoi <> 0 Then
BangChu = BangChu + IIf(Muoi <> 0 And Muoi <> 1, _
Trim(CharVND(Muoi)) + " m¬i ", "mêi ")
End If
End If

If Muoi <> 0 And DonVi = 5 Then
BangChu = BangChu + "l¨m " + Ten + " "
Else
If Muoi > 1 And DonVi = 1 Then
BangChu = BangChu + "mèt " + Ten + " "
Else
BangChu = BangChu + IIf(DonVi <> 0, Trim(CharVND(DonVi)) + " " + Ten + " ", Ten + " ")
End If
End If
Else
BangChu = BangChu + IIf(i = 4, DonViTien + " ", "")
End If
i = i + 1
Wend
If SoLe = 0 Then
BangChu = BangChu + "ch½n"
End If
Mid$(BangChu, 1, 1) = UCase$(Mid$(BangChu, 1, 1))
bctcvn3 = BangChu
End Function
Mình gửi bạn file
 

File đính kèm

Như file bạn gửi thì mình chỉ thực hiện trên một file, mình đã tìm được 1 ứng dụng khác thay thế "AccHelper", dù sao cũng cảm ơn bạn đã hỗ trợ.
 
Cái app này có vẻ khó xài hơn mấy code VBA của mọi người trên diễn đàn nữa. :(
 
Hihi, dễ hay không là do mình thôi, càng nhiều cách giải quyết vấn đề càng tốt. Mình có nhiều cách lựa chọn.
 
Web KT

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

Back
Top Bottom