Xin trợ giúp hàm tính khối lượng theo diễn giải

Liên hệ QC

emconnhaxd

Thành viên chính thức
Tham gia
10/1/10
Bài viết
51
Được thích
0
Mình có một hàm đã nhờ các bạn viết là =KL(A)
Nhưng mình thấy nó lại làm tròn 3 con số, mình muốn nó không làm tròn số, xin mọi người giúp chỉnh sửa
 

File đính kèm

Lần chỉnh sửa cuối:
Đưa cái hàm ấy lên đây. Tôi ăn ở vệ sinh lắm, không download và mở file có macro đâu.
 
Function vnd(conso) As String
Dim nSheet As String
nSheet = ActiveSheet.Name
If nSheet <> "VLHT XD" And nSheet <> "VLHT TB" Then
s09 = Array("", " m" & ChrW(7897) & "t", " hai", " ba", " b" & ChrW(7889) & "n", " n" & ChrW(259) & "m", " s" & ChrW(225) & "u", " b" & ChrW(7843) & "y", " t" & ChrW(225) & "m", " ch" & ChrW(237) & "n")
lop3 = Array("", " tri" & ChrW(7879) & "u", " ngh" & ChrW(236) & "n", " t" & ChrW(7927))
'Stop
If Trim(conso) = "" Then
vnd = ""
ElseIf IsNumeric(conso) = True Then
If conso < 0 Then dau = ChrW(226) & "m " Else dau = ""
conso = Application.WorksheetFunction.Round(Abs(conso), 0)
conso = " " & conso
conso = Replace(conso, ",", "", 1)
vt = InStr(1, conso, "E")
If vt > 0 Then
sonhan = Val(Mid(conso, vt + 1))
conso = Trim(Mid(conso, 2, vt - 2))
conso = conso & String(sonhan - Len(conso) + 1, "0")
End If
conso = Trim(conso)
sochuso = Len(conso) Mod 9
If sochuso > 0 Then conso = String(9 - (sochuso Mod 12), "0") & conso
docso = ""
i = 1
LOP = 1
Do
n1 = Mid(conso, i, 1)
n2 = Mid(conso, i + 1, 1)
n3 = Mid(conso, i + 2, 1)
baso = Mid(conso, i, 3)
i = i + 3
If n1 & n2 & n3 = "000" Then
If docso <> "" And LOP = 3 And Len(conso) - i > 2 Then s123 = " t" & ChrW(7927) Else s123 = ""
Else
If n1 = 0 Then
If docso = "" Then s1 = "" Else s1 = " kh" & ChrW(244) & "ng tr" & ChrW(259) & "m"
Else
s1 = s09(n1) & " tr" & ChrW(259) & "m"
End If
If n2 = 0 Then
If s1 = "" Or n3 = 0 Then
s2 = ""
Else
s2 = " linh"
End If
Else
If n2 = 1 Then s2 = " m" & ChrW(432) & ChrW(7901) & "i" Else s2 = s09(n2) & " m" & ChrW(432) & ChrW(417) & "i"
End If
If n3 = 1 Then
If n2 = 1 Or n2 = 0 Then S3 = " m" & ChrW(7897) & "t" Else S3 = " m" & ChrW(7889) & "t"
ElseIf n3 = 5 And n2 <> 0 Then
S3 = " l" & ChrW(259) & "m"
ElseIf n3 = 4 And n2 <> 1 And n2 <> 4 And n1 = 4 Then S3 = " t" & ChrW(432)
Else
S3 = s09(n3)
End If
If i > Len(conso) Then
s123 = s1 & s2 & S3
Else
s123 = s1 & s2 & S3 & lop3(LOP)
End If
End If
LOP = LOP + 1
If LOP > 3 Then LOP = 1
docso = docso & s123
If i > Len(conso) Then Exit Do
Loop
vnd = UCase(Left(dau & Trim(docso), 1)) & Mid(dau & Trim(docso), 2) & " " & ChrW(273) & ChrW(7891) & "ng."
If Left(vnd, 2) = "T" & ChrW(432) Then
vnd = "B" & ChrW(7889) & "n" & Right(vnd, (Len(vnd) - 2))
End If
Else
'vnd = conso
End If
End If
End Function
Function vitri(kytu As String, chuoidc As String)
sodaucach = 0
For i = 1 To Len(chuoidc)
kytuchuoi = Mid(chuoidc, i, 1)
If kytuchuoi = kytu Then
vitri = i
End If
Next
End Function
Public Function kl(strText As String)
If Right(strText, 1) = " " Then
kl = "0"
Else
strText = Replace(strText, "m2", "")
strText = Replace(strText, "m3", "")
strText = Replace(strText, "M2", "")
strText = Replace(strText, "M3", "")
strText = Replace(strText, ",", ".")

If vitri(" ", strText) < Len(strText) And vitri(" ", strText) > 1 Then
strText = Right(strText, Len(strText) - vitri(" ", strText))
'Else
End If

kl = ""
For i = 1 To Len(strText)
kytu = Mid(strText, i, 1)
If kytu = "0" Or kytu = "1" Or kytu = "2" Or kytu = "3" Or kytu = "4" Or kytu = "5" Or kytu = "6" Or kytu = "7" _
Or kytu = "8" Or kytu = "9" Or kytu = "+" Or kytu = "-" Or kytu = "*" Or kytu = "/" Or kytu = "^" Or kytu = "." _
Or kytu = "," Or kytu = "(" Or kytu = ")" Or kytu = "%" Then
kl = kl & kytu
End If
Next
If kl = "" Then
kl = 0
End If
End If
If IsError(Evaluate(kl)) Then
kl = ""
Else
kl = Round(Evaluate(kl), 3)
If kl = 0 Then
kl = ""
End If
End If
End Function
Function USD(Tien)
If Tien = 0 Then
Toread = "None"
Else
SP = Space(1)
RR = Space(0)
Donvi = RR: Hchuc = RR: Khung = RR
Donvi = Donvi + "one two three four "
Donvi = Donvi + "five six seven eight "
Donvi = Donvi + "nine ten eleven twelve "
Donvi = Donvi + "thirteen fourteen fifteen sixteen "
Donvi = Donvi + "seventeeneighteen nineteen "
Hchuc = Hchuc + "twenty thirty forty fifty "
Hchuc = Hchuc + "sixty seventy eighty ninety "
Khung = Khung + "billion milion thousand dollars cents "
If Tien < 0 Then
Toread = "Minus "
Else
Toread = RR
End If
Chuoi = Format(Abs(Tien), "############.00")
Chuoi = Right(Space(12) + Chuoi, 15)
For i = 1 To 5
NHOM = Mid(Chuoi, i * 3 - 2, 3)
If NHOM <> Space(3) Then
Select Case NHOM
Case "000"
If i = 4 And Abs(Tien) > 1 Then
Word = "dollars "
Else
Word = RR
End If
Case ".00"
Word = "only"
Case Else
X = Val(Left(NHOM, 1))
Y = Val(Mid(NHOM, 2, 1))
Z = Val(Right(NHOM, 1))
W = Val(Right(NHOM, 2))
If X = 0 Then
Word = RR
Else
Word = Trim(Mid(Donvi, X * 9 - 8, 9)) + " hundred "
If W > 0 And W < 21 Then
Word = Word + "and "
End If
End If
If i = 5 And Abs(Tien) > 1 Then
Word = "and " + Word
End If
If W < 20 And W > 0 Then
Word = Word + Trim(Mid(Donvi, W * 9 - 8, 9)) + SP
Else
If W >= 20 Then
Word = Word + Trim(Mid(Hchuc, (Y - 1) * 9 - 8, 9)) + SP
If Z > 0 Then
Word = Word + Trim(Mid(Donvi, Z * 9 - 8, 9)) + SP
End If
End If
End If
Word = Word + Trim(Mid(Khung, i * 9 - 8, 9)) + SP
End Select
Toread = Toread + Word
End If
Next i
End If
USD = Trim(UCase(Left(Toread, 1)) + Mid(Toread, 2))
If Right(USD, 9) = "and cents" Then
USD = Left(USD, Len(USD) - 10)
End If
End Function
 
Tôi không có hứng sửa hàm. Nếu bạn ưng cái hàm ấy thì thay
Mã:
kl = Round(Evaluate(kl), 3)
bằng
Mã:
kl = Evaluate(kl)
 
Web KT

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

Back
Top Bottom