
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 展开
这要如何才能实现,要最快捷的方法。
哈哈我想了把多小时高了出来。给大家参考一下吧!!
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 展开
4个回答
展开全部
何必这么麻烦呢,, 复制下面代码
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
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
展开全部
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
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
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
够简单能看懂吧
d = Split(Text1.Text, "+", -1, 1)
For i = 0 To UBound(d)
tmp = tmp + Val(d(i))
Next
Text2.Text = tmp
End Sub
够简单能看懂吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你还是用多个textbox来接受公式吧,,一个textbox接受公式,那么你还要判断用户输入是否合法,而且还得根据数字、符号截取,这样反倒麻烦。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询