Công thức của mình bị sai ở đâu??? (1 người xem)

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

quynhace

Thành viên chính thức
Tham gia
1/6/11
Bài viết
86
Được thích
16
Sorry mọi người nhiều!
Không biết làm sao mà hôm qua mình không thể post được bài lên nữa, nên đành để đến hôm nay mới dám vào để đăng lại.
Ý của mình như sau:
Tại ô A1: EUR
Tại ô A2: 654,361
Tại ô A3: mình đánh công thức sau:

=IF(A1="EUR",SUBSTITUTE(VND(A2,,"Euro","cen"),"chẵn",""),IF(A1="JPY",SUBSTITUTE(VND(A2,,"Yên","xu"),"chẵn",""), IF(A1="SGD",SUBSTITUTE(VND(A2,,"Đô la Singapore","cen"),"chẵn",""),SUBSTITUTE(VND(A2,,"Đô la Mỹ","cen"),"chẵn",""))))

==> Nhưng kết quả lại là #Value!
Mình vẫn thường dùng công thức này trong file tài liệu của mình, nhưng cách đây 3 ngày máy mình bị virus nên phải cài lại máy. Hôm qua mình mở file ra làm thì thấy bị như vậy.
Nên mình muốn nhờ mọi người trong diễn đàn xem giúp mình với.
Cảm ơn mọi người nhiều nhiều.
 
Lần chỉnh sửa cuối:
hix , mình cũng không hiểu bảng trên cấu trúc như thế nào ?

hàm VND() là bạn viết hay là sưu tầm ở đâu ?
 
Lần chỉnh sửa cuối:
Sorry mọi người nhiều!
Không biết làm sao mà hôm qua mình không thể post được bài lên nữa, nên đành để đến hôm nay mới dám vào để đăng lại.
Ý của mình như sau:
Tại ô A1: EUR
Tại ô A2: 654,361
Tại ô A3: mình đánh công thức sau:

=IF(A1="EUR",SUBSTITUTE(VND(A2,,"Euro","cen"),"chẵn",""),IF(A1="JPY",SUBSTITUTE(VND(A2,,"Yên","xu"),"chẵn",""), IF(A1="SGD",SUBSTITUTE(VND(A2,,"Đô la Singapore","cen"),"chẵn",""),SUBSTITUTE(VND(A2,,"Đô la Mỹ","cen"),"chẵn",""))))

==> Nhưng kết quả lại là #Value!
Mình vẫn thường dùng công thức này trong file tài liệu của mình, nhưng cách đây 3 ngày máy mình bị virus nên phải cài lại máy. Hôm qua mình mở file ra làm thì thấy bị như vậy.
Nên mình muốn nhờ mọi người trong diễn đàn xem giúp mình với.
Cảm ơn mọi người nhiều nhiều.

hix, không hiểu sao mình muốn đánh chữ "CHẴN" thì nó lại thành chữ "ch ???" ???
Mọi người vào giúp mình với!
 
bạn up file lên, hoặc gửi code hàm vnd() lên xem thử như thế nào ,
 
Sorry mọi người nhiều!
Không biết làm sao mà hôm qua mình không thể post được bài lên nữa, nên đành để đến hôm nay mới dám vào để đăng lại.
Ý của mình như sau:
Tại ô A1: EUR
Tại ô A2: 654,361
Tại ô A3: mình đánh công thức sau:

=IF(A1="EUR",SUBSTITUTE(VND(A2,,"Euro","cen"),"chẵn",""),IF(A1="JPY",SUBSTITUTE(VND(A2,,"Yên","xu"),"chẵn",""), IF(A1="SGD",SUBSTITUTE(VND(A2,,"Đô la Singapore","cen"),"chẵn",""),SUBSTITUTE(VND(A2,,"Đô la Mỹ","cen"),"chẵn",""))))

==> Nhưng kết quả lại là #Value!
Mình vẫn thường dùng công thức này trong file tài liệu của mình, nhưng cách đây 3 ngày máy mình bị virus nên phải cài lại máy. Hôm qua mình mở file ra làm thì thấy bị như vậy.
Nên mình muốn nhờ mọi người trong diễn đàn xem giúp mình với.
Cảm ơn mọi người nhiều nhiều.
Bạn tìm trên Diễn đàn có nhiều bài nói về số ra chữ số ra Eur. Bạn tìm kiếm add in "soraeuro" đi
 
Mình không biết lỗi công thức sai ở đâu? Mong mọi người chỉ giúp!

Mọi người ơi, mình gửi file đính kèm đây nhờ mọi người xem giúp mình với nhé.
Cảm ơn mọi người nhiều nhiều thật nhiều.
 

File đính kèm

Bạn quynhace tham khảo Code sau

Function UnicodeChar(UniCharCode As String) As String
On Error GoTo Loi
Dim str
Dim desStr As String
Dim I
If Mid(UniCharCode, 1, 1) = ";" Then
UniCharCode = Mid(UniCharCode, 2)
End If
If Right(UniCharCode, 1) = ";" Then
UniCharCode = Mid(UniCharCode, 1, Len(UniCharCode) - 1)
End If
str = UniCharCode
str = Split(str, ";")
For I = LBound(str) To UBound(str)
desStr = desStr & ChrW$("&H" & str(I))
Next
UnicodeChar = desStr
Loi:
Exit Function
End Function
Function SoRaeuro(ByVal NumCurrency As Currency) As String
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 String
DonViTien = ";45;75;52;6F" ' EuRo
DonViLe = ";63;65;6E;74" ' cent
If NumCurrency = 0 Then
SoRaeuro = UnicodeChar(";4B;68;F4;6E;67;20" & DonViTien)
Exit Function
End If
If NumCurrency > 922337203685477# Then ' So^' lo+'n nha^'t cu?a loa.i CURRENCY
SoRaeuro = UnicodeChar(";4B;68;F4;6E;67;20;111;1ED5;69;20;111;1B0;1EE3;63;20;73" & _
";1ED1;20;6C;1EDB;6E;20;68;1A1;6E;20;39;32;32;2C;33;33;37" & _
";2C;32;30;33;2C;36;38;35;2C;34;37;37")
Exit Function
End If
CharVND(1) = ";6D;1ED9;74" ' mo^.t
CharVND(2) = ";68;61;69" ' hai
CharVND(3) = ";62;61" ' ba
CharVND(4) = ";62;1ED1;6E" ' bo^'n
CharVND(5) = ";6E;103;6D" ' na(m
CharVND(6) = ";73;E1;75" ' su
CharVND(7) = ";62;1EA3;79" ' ba?y
CharVND(8) = ";74;E1;6D" ' tm
CharVND(9) = ";63;68;ED;6E" ' chn
SoLe = Int((NumCurrency - Int(NumCurrency)) * 100) ' 2 k so^'
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 = ";6B;68;F4;6E;67;20" + DonViTien + ";20"
I = 5
Else
BangChu = ""
I = 0
End If
'-----------------------------------------------------
' Ba('t ?a^`u ?o^?i
'-----------------------------------------------------
While I <= 5
Select Case I
Case 0
SoDoi = NganTy
Ten = ";6E;67;E0;6E;20;74;1EF7" ' ngn ty?
Case 1
SoDoi = Ty
Ten = ";74;1EF7" ' ty?
Case 2
SoDoi = Trieu
Ten = ";74;72;69;1EC7;75" ' trie^.u
Case 3
SoDoi = Ngan
Ten = ";6E;67;E0;6E" ' ngn
Case 4
SoDoi = Dong
Ten = DonViTien ' ?o^`ng
Case 5
SoDoi = SoLe
Ten = DonViLe ' xu
End Select
If SoDoi <> 0 Then
Tram = Int(SoDoi / 100)
Muoi = Int((SoDoi - Tram * 100) / 10)
DonVi = (SoDoi - Tram * 100) - Muoi * 10
If Right(BangChu, 3) = ";20" Then
BangChu = Left(BangChu, Len(BangChu) - 3)
End If
BangChu = BangChu + IIf(Len(BangChu) = 0, "", ";2C;20") + _
IIf(Tram <> 0, Trim(CharVND(Tram)) + ";20;74;72;103;6D;20", "")
If Muoi = 0 And Tram <> 0 And DonVi <> 0 Then
BangChu = BangChu + ";6C;1EBB;20"
Else
If Muoi <> 0 Then
BangChu = BangChu + IIf(Muoi <> 0 And Muoi <> 1, _
Trim(CharVND(Muoi)) + ";20;6D;1B0;1A1;69;20", ";6D;1B0;1EDD;69;20")
End If
End If
If Muoi <> 0 And DonVi = 5 Then
BangChu = BangChu + ";6C;103;6D;20" + Ten + ";20"
Else
If Muoi > 1 And DonVi = 1 Then
BangChu = BangChu + ";6D;1ED1;74;20" + Ten + ";20"
Else
BangChu = BangChu + IIf(DonVi <> 0, Trim(CharVND(DonVi)) + ";20" + Ten, Ten) + ";20"
End If
End If
Else
BangChu = BangChu + IIf(I = 4, DonViTien + "", "")
End If
I = I + 1
Wend
If Right(BangChu, 3) = ";20" Then
BangChu = Left(BangChu, Len(BangChu) - 3)
End If
BangChu = BangChu + IIf(Len(BangChu) = 0, "", ";2e;20")
If SoLe = 0 Then
BangChu = BangChu + IIf(Right(BangChu, 3) = 0, "", ";20")
End If
BangChu = UnicodeChar(BangChu)
'?o^?i sang tie^'ng Vie^.t Unicode
' ?o^?i chu+~ ci ?a^`u tin thnh chu+~ hoa
Mid$(BangChu, 1, 1) = UCase$(Mid$(BangChu, 1, 1))
SoRaeuro = BangChu
End Function
 
Cảm ơn bạn Vanle33 nhiều nhé!
Bạn ơi cho mình hỏi code này mình sẽ làm giống như với cài đặt vnu hoặc vnd hay là như thế nào? Bạn có thể giải thích giúp mình rõ hơn được không? vì trong công thức mà mình đã làm là mình tự góp nhặt trong các bài của mọi người đưa lên diễn đàn, và trước khi cài đặt lại win cho máy thì mình vẫn thấy nó chạy tốt, nhưng từ lúc mình cài lại win thì lại bị lỗi #Value!.
Hơn nữa là:
nếu mình đổi tên của đồng tiền là USD, JPY hoặc SGD, ..... thì nó sẽ tự động đọc tên của đồng tiền đó sang tiếng Việt song song với đọc số ra chữ.
Bạn giúp mình với nhé.
 
Lần chỉnh sửa cuối:
Mọi người vào chỉ giúp cho mình với.
Cảm ơn cả nhà nhiều lắm.
 
Cảm ơn bạn Vanle33 nhiều nhé!
Bạn ơi cho mình hỏi code này mình sẽ làm giống như với cài đặt vnu hoặc vnd hay là như thế nào? Bạn có thể giải thích giúp mình rõ hơn được không? vì trong công thức mà mình đã làm là mình tự góp nhặt trong các bài của mọi người đưa lên diễn đàn, và trước khi cài đặt lại win cho máy thì mình vẫn thấy nó chạy tốt, nhưng từ lúc mình cài lại win thì lại bị lỗi #Value!.
Hơn nữa là:
nếu mình đổi tên của đồng tiền là USD, JPY hoặc SGD, ..... thì nó sẽ tự động đọc tên của đồng tiền đó sang tiếng Việt song song với đọc số ra chữ.
Bạn giúp mình với nhé.
Bạn Copy code trên và dán vào Module
Công thức =soraeuro(A1) với A1 là ô chứa số
Bạn thử đi
 

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

Back
Top Bottom