vb中,如何实现在textbox中输入公式后,能计算结果。

比如在text1中输入:123+456后,按下command1,在text2显示结果:579.这要如何才能实现,要最快捷的方法。哈哈我想了把多小时高了出来。给大家参考一下... 比如在text1中输入:123+456 后,按下command1,在text2显示结果:579.
这要如何才能实现,要最快捷的方法。
哈哈我想了把多小时高了出来。给大家参考一下吧!!
Public yst As String

Public Sub ys()
Dim y1, y2, y3, y4 As Integer
Dim n1, n2
y1 = InStr(yst, "+")
y2 = InStr(yst, "-")
y3 = InStr(yst, "*")
y4 = InStr(yst, "/")
If y1 > 0 Then
n1 = Left(yst, y1 - 1)
n2 = Mid(yst, y1 + 1)
yst = Val(n1) + Val(n2)
ElseIf y2 > 0 Then
n1 = Left(yst, y2 - 1)
n2 = Mid(yst, y2 + 1)
yst = Val(n1) - Val(n2)
ElseIf y3 > 0 Then
n1 = Left(yst, y3 - 1)
n2 = Mid(yst, y3 + 1)
yst = Val(n1) * Val(n2)
ElseIf y4 > 0 Then
n1 = Left(yst, y4 - 1)
n2 = Mid(yst, y4 + 1)
yst = Val(n1) / Val(n2)
Else
ggshl = 2
End If
End Sub
展开
 我来答
aa4681464
2009-12-18 · TA获得超过1138个赞
知道小有建树答主
回答量:922
采纳率:0%
帮助的人:849万
展开全部
何必这么麻烦呢,, 复制下面代码

Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As Long
Function StepLine(ByVal cmd As String) As Long
StepLine = EbExecuteLine(StrPtr(ByVal cmd), 0, 0, 0)
End Function

Private Sub Command1_Click()

Dim a As String
a = "form1.text2.text=" & Text1.Text
StepLine a '把a的内容看成代码来执行

End Sub

Private Sub Command2_Click()
StepLine Text1.Text'把text.text的内容看成代码来执行
'比如在text1输入 msgbox "a" 则 弹出窗口a,....form1.text2.text="asdfcs"

End Sub
取名字严重难
2009-12-17 · TA获得超过1.2万个赞
知道大有可为答主
回答量:2081
采纳率:33%
帮助的人:899万
展开全部
Private Sub Command1_Click()
LENC = Len(Text1.Text)
For I = 1 To Len(Text1.Text)
If IsNumeric(Mid(Text1.Text, I, 1)) = False Then Exit For
Next
Select Case Mid(Text1.Text, I, 1)
Case "+"
Text1.Text = Val(Left(Text1.Text, I)) + Val(Right(Text1.Text, LENC - I))

Case "-"
Text1.Text = Val(Left(Text1.Text, I)) - Val(Right(Text1.Text, LENC - I))
Case "*"
Text1.Text = Val(Left(Text1.Text, I)) * Val(Right(Text1.Text, LENC - I))

Case "/"
If Val(Right(Text1.Text, LENC - I)) <> 0 Then
Text1.Text = Val(Left(Text1.Text, I)) / Val(Right(Text1.Text, LENC - I))
Else
MsgBox "错误,O不能被除", 48, "error"
End If
End Select
End Sub
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lovedy_1
2009-12-17 · TA获得超过606个赞
知道小有建树答主
回答量:379
采纳率:85%
帮助的人:285万
展开全部
Private Sub Command1_Click()
d = Split(Text1.Text, "+", -1, 1)
For i = 0 To UBound(d)
tmp = tmp + Val(d(i))
Next
Text2.Text = tmp
End Sub
够简单能看懂吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2fb8851
2009-12-17 · TA获得超过118个赞
知道小有建树答主
回答量:123
采纳率:0%
帮助的人:0
展开全部
你还是用多个textbox来接受公式吧,,一个textbox接受公式,那么你还要判断用户输入是否合法,而且还得根据数字、符号截取,这样反倒麻烦。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式