如何用VB编程对输入TextBox中输入的任意公式进行运算:a=(b+d)/c ? 5
主要是ExcelVBA编写宏,用于Excel数据处理的。如果可以的话,最好是VBA的。请各位大侠不吝赐教。...
主要是Excel VBA编写宏,用于Excel数据处理的。如果可以的话,最好是VBA的。请各位大侠不吝赐教。
展开
5个回答
展开全部
这个我编过,刚学vb时编着玩的,刚才去电脑里找了,却怎么也找不到了,我给楼主说下思想吧。
因为用文本框输入的是一段文本,计算机不认识,需要对这段文本进行字符串处理,说白了就是分割这个式子,把数字、运算符分割出来,可以有很多种方法,我用了一种可能比较简单的方法。
首先观察任意一四则运算式a+b*(c-d)/e,可以按运算级分为括号、乘除、加减。任意一四则运算式都可以在遇到括号时将括号里的式子作为一独立的四则运算式;遇到加减可以将后边整个式子作为一个式子(括号里边的加减因为已经先将整个括号分割出来了,不影响这个结论);遇到乘除顺序运算。
因而可以对整个式子从左至右逐个字符分析,逐个取数判断是数就加上前一个temp*10的值再保存到temp,以保证取到的一直是可以计算的数值,是运算符就调用各自处理函数:遇到左括号就用括号处理函数直到遇到右括号为止返回计算值;遇到加减号就循环调用加减处理函数直至算完返回计算值;遇到乘除就一直算下去(我记得我是将乘除作为主函数的)。
说起来很麻烦,其实你写一下就知道很简单了,我记得一共不到30行左右。
不过还是不建议用vb编这样的函数,没太大意义,用来玩还可以。
因为用文本框输入的是一段文本,计算机不认识,需要对这段文本进行字符串处理,说白了就是分割这个式子,把数字、运算符分割出来,可以有很多种方法,我用了一种可能比较简单的方法。
首先观察任意一四则运算式a+b*(c-d)/e,可以按运算级分为括号、乘除、加减。任意一四则运算式都可以在遇到括号时将括号里的式子作为一独立的四则运算式;遇到加减可以将后边整个式子作为一个式子(括号里边的加减因为已经先将整个括号分割出来了,不影响这个结论);遇到乘除顺序运算。
因而可以对整个式子从左至右逐个字符分析,逐个取数判断是数就加上前一个temp*10的值再保存到temp,以保证取到的一直是可以计算的数值,是运算符就调用各自处理函数:遇到左括号就用括号处理函数直到遇到右括号为止返回计算值;遇到加减号就循环调用加减处理函数直至算完返回计算值;遇到乘除就一直算下去(我记得我是将乘除作为主函数的)。
说起来很麻烦,其实你写一下就知道很简单了,我记得一共不到30行左右。
不过还是不建议用vb编这样的函数,没太大意义,用来玩还可以。
展开全部
今天刚开始学VB,
看不懂你的问题补充啊,不过就你的标题而言,我用用我刚学的知识试试,
如果只要运算a=(b+d)/c
Private Sub Command1_Click()
txta=(Val(txtb)+Val(txtd))/Val(txtc)
End Sub
好吧,我是来打酱油的 - 。- 坐等大神出现 ~~
看不懂你的问题补充啊,不过就你的标题而言,我用用我刚学的知识试试,
如果只要运算a=(b+d)/c
Private Sub Command1_Click()
txta=(Val(txtb)+Val(txtd))/Val(txtc)
End Sub
好吧,我是来打酱油的 - 。- 坐等大神出现 ~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-07-06
展开全部
“ jnwinfan”说的不错。“赞同”
不同的编程语言各有所长、同时也各有所短。
不同的编程语言各有所长、同时也各有所短。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对vb,这可不是个简单的问题,能实现,很复杂
对vfp,非常简单,直接使用 宏替换 即&
对vfp,非常简单,直接使用 宏替换 即&
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用C吧,VB太麻烦了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询