VB 高手请进:悬赏100分帮我解决一个VB问题

如何将text1中的字符串作为FUNCTION函数引用。若在text1中输入x^2+5,如以下定义,运行结果却不是14,而是x^2+5PrivateSubCommand1... 如何将text1中的字符串作为FUNCTION函数引用。若在text1中输入x^2+5,如以下定义,运行结果却不是14,而是x^2+5
Private Sub Command1_Click()
Print f(3)
End Sub
Private Function f(x)
f = Text1.Text
End Function
以上代码中f = Text1.Text肯定错了,应该怎么修改?求教高手指正
展开
 我来答
lyglay
2008-01-20 · TA获得超过1138个赞
知道大有可为答主
回答量:975
采纳率:0%
帮助的人:0
展开全部
Function f(x As String)
x = Replace(Text1, "x", x)
Dim calc As Object
Set calc = CreateObject("MSScriptControl.ScriptControl")
calc.Language = "vbscript"
f = calc.Eval(x)
End Function

Private Sub Command1_Click()
MsgBox f(5)
End Sub

Private Sub Form_Load()
Text1 = "x^2+5"
End Sub
奇励溯源
2008-01-20 · TA获得超过221个赞
知道小有建树答主
回答量:567
采纳率:66%
帮助的人:184万
展开全部
1。主体用函数递归调用,并且在对表达式分析的时候要从右向左分析,(因为在处理象:9*3/3这样的表达式时候,有一个优先问题,下面再细说。)
2。注意其中的优先级问题。例如:()->^->*,/->+,-
3。从优先级低的地方把表达式分开成两段,之后递归对这两段再分析,直至到两个最简单的数相运算。
比如上面的那个9*3/3,从右开始:找到/后,分为:9*3和3,运算为/;对9*3分析后,分为:9和3,运算为*。然后,递归会帮你分析到底。
如果是从左到右的话,会出错的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jayxon
2008-01-20 · TA获得超过172个赞
知道答主
回答量:77
采纳率:0%
帮助的人:0
展开全部
Text1.Text默认是字符型,而你想要的是整形,对吗
改成f = CInt(Text1.Text)应该就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式