- Tham gia
- 12/8/06
- Bài viết
- 1,875
- Được thích
- 2,478
Đôi khi ta có những biểu thức có số lẫn chữ và ta muốn tính giá trị của biểu thức đó. Ta dùng hàm DValue, cú pháp : DValue(Biểu_Thức)
Ví dụ :
---------A---------------------------B---------------giá trị trả về
1.-- "6 cái x 10đ" --------------- =DValue(A1) --------- 60
2.-- "5m x 20m" ---------------- =DValue(A2) --------- 100
3.-- "(2hàng+3hàng)*10người" -- =DValue(A3) --------- 50
4.-- "60người : 2 xe" ----------- =Dvalue(A4) ---------- 30
Phép tính nhân có thể là dấu * hoặc x
Phép tính chia có thể là dấu / hoặc :
TDN
Ví dụ :
---------A---------------------------B---------------giá trị trả về
1.-- "6 cái x 10đ" --------------- =DValue(A1) --------- 60
2.-- "5m x 20m" ---------------- =DValue(A2) --------- 100
3.-- "(2hàng+3hàng)*10người" -- =DValue(A3) --------- 50
4.-- "60người : 2 xe" ----------- =Dvalue(A4) ---------- 30
Phép tính nhân có thể là dấu * hoặc x
Phép tính chia có thể là dấu / hoặc :
Mã:
Public Function DValue(Expr)
Char = Expr
Sent = Space(0)
ABC = "0123456789+-*/()." & Space(1)
XYZ = "0123456789" & Space(1)
For m = 2 To 3
Met = "m" & m
Temp = InStr(1, Char, Met)
Do While Temp > 0
If Temp > 0 Then
Char = Left(Char, Temp) & Mid(Char, Temp + 2)
End If
Temp = InStr(1, Char, Met)
Loop
Next
For i = 1 To Len(Char)
KyTu = Mid(Char, i, 1)
If InStr(1, ABC, KyTu) > 0 Then
Sent = Sent & KyTu
Else
Select Case KyTu
Case ":"
Left_ = Mid(Char, i - 1, 1)
Right_ = Mid(Char, i + 1, 1)
If InStr(1, XYZ, Right_) > 0 Then
Sent = Sent & "/"
End If
Case ","
Sent = Sent & "."
Case "%"
Sent = Sent & "/100"
Case "x", "X"
Left_ = Mid(Char, i - 1, 1)
Right_ = Mid(Char, i + 1, 1)
If InStr(1, XYZ, Right_) > 0 Then
Sent = Sent & "*"
End If
End Select
End If
Next
DValue = Eval(Sent)
End Function
File đính kèm
Lần chỉnh sửa cuối: