Hàm tính toán nội dung diễn giải từ chuỗi biểu thức
Hàm CALVALUE - Cấu trúc : CALVALUE ( expr )
expr : Chuỗi diễn giải công thức gồm 2 phần : Nội dung và Biểu thức tính toán ngăn cách nhau bởi dấu " : "
Ví dụ :
Cell A1 = Bê tông đà kiềng DK1 : 0,2m*0,35m*5,2m
Cell B1 = CALVALUE ( A1 ). Giá trị trả về : 0,364
Định nghĩa hàm :
Function CALVALUE(expr As String) As Double
Dim place As Integer
Dim Temp, Excal
place = InStr(expr, ":")
If place > 0 Then
expr = Mid(expr, place + 1)
Set Temp = CreateObject("VBScript.RegExp")
Temp.Global = True
Excal = Replace(expr, "[", "(")
Excal = Replace(Excal, "]", ")")
Excal = Replace(Excal, "{", "(")
Excal = Replace(Excal, "}", ")")
Excal = Replace(Excal, "x", "*")
Temp.Pattern = "[^0-9,+,.,*,/,:,(,),-]"
expr = Temp.Replace(Excal, "")
CALVALUE = Evaluate(expr)
Else: MsgBox ("Bieu thuc phai chua dau ' : '")
End If
End Function
Hàm CALVALUE - Cấu trúc : CALVALUE ( expr )
expr : Chuỗi diễn giải công thức gồm 2 phần : Nội dung và Biểu thức tính toán ngăn cách nhau bởi dấu " : "
Ví dụ :
Cell A1 = Bê tông đà kiềng DK1 : 0,2m*0,35m*5,2m
Cell B1 = CALVALUE ( A1 ). Giá trị trả về : 0,364
Định nghĩa hàm :
Function CALVALUE(expr As String) As Double
Dim place As Integer
Dim Temp, Excal
place = InStr(expr, ":")
If place > 0 Then
expr = Mid(expr, place + 1)
Set Temp = CreateObject("VBScript.RegExp")
Temp.Global = True
Excal = Replace(expr, "[", "(")
Excal = Replace(Excal, "]", ")")
Excal = Replace(Excal, "{", "(")
Excal = Replace(Excal, "}", ")")
Excal = Replace(Excal, "x", "*")
Temp.Pattern = "[^0-9,+,.,*,/,:,(,),-]"
expr = Temp.Replace(Excal, "")
CALVALUE = Evaluate(expr)
Else: MsgBox ("Bieu thuc phai chua dau ' : '")
End If
End Function