以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  这样用就不行,我改怎么弄?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=61154)

--  作者:heying325
--  发布时间:2014/12/8 9:46:00
--  这样用就不行,我改怎么弄?
Dim i As Double = 9+Math.Ceiling(0.70-1.2)*3
这句代码执行没有为题。。。。
可是:
Dim s As String = "9+Math.Ceiling(0.70-1.2)*3"
Dim i As Double = Eval(s)
就跳出 缺少对象: \'Math\' 错误! 请问我想用第二种方法 改怎么改?

--  作者:有点甜
--  发布时间:2014/12/8 9:49:00
--  
 Eval只能做四则运算,不能执行代码
--  作者:有点甜
--  发布时间:2014/12/8 9:50:00
--  

 如果要用,就要动态编译代码

 

http://www.foxtable.com/help/topics/1487.htm

 


--  作者:heying325
--  发布时间:2014/12/8 10:55:00
--  
Dim str As String
str = "Dim Sum1 As double = 19+Math.Ceiling(0.70-1.2)*3" & vbcrlf
str = str & "Return Sum1"
Functions.Add("Sum1",str)
Dim i As Double = Functions.Execute("Sum1")
Functions.Remove("Sum1")
MessageBox.Show(i)

请问这段代码执行后,出现 “找不到自定义函数SUM1”  。。。。求解!

--  作者:有点甜
--  发布时间:2014/12/8 11:00:00
--  
 Dim str As String
str = "Dim Sum1 As double = 19+Math.Ceiling(0.70-1.2)*3" & vbcrlf
str = str & "Return Sum1"
Functions.Add("Sum",str)
Functions.Complie()
Dim i As Double = Functions.Execute("Sum")
Functions.Remove("Sum")
MessageBox.Show(i)