如 : text1=3*5*9*4 , text2=6*5*9 , text1,text2 数据不固定的.可能是3个、5个、、数据相乘 。
text3=text1*text2 ,
text3=3*5*9*4*6*5*9=145800
这样能做到吗?
text3=text1*text2 ,
text3=3*5*9*4*6*5*9=145800
这样能做到吗?
解决方案 »
- DataGrid到处到EXCEL中不显示第一列“姓名”,附代码,大家帮看一下
- 不同文件间具有相同ID的几个数两两相减如何解决?
- 哪位仁兄有BP算法的VB源代码能共享一下吗?谢了!
- 监视窗口和键盘的问题
- 请问vb当中如何连接局域网中的数据库服务器。
- 关于MSHFlexGrid的排序问题,请帮忙。谢谢
- 怎么样用vb做拨号与用上传文件的代码?
- 请教,如何在VB中对word文档进行格式控制!!!
- GetOpenFileName函数功能是什么?最好能有个例子.
- 使用listbox,在additem时可不可以显示一个名称,再给他付一个值,有没有什么办法?也就是我一点击其中一个项就得到相关付给他的ID!
- 请问windows的脚本vbs文件用什么调试?
- 大家进来讨论一下VB6.0还能生存多久?
Private Sub Command1_Click()
Dim VBEval As New ScriptControl
Dim Result As String
On Error GoTo E
VBEval.Language = "vbscript"
Result = VBEval.Eval(Text1.Text)
MsgBox Text1.Text & "=" & Result
Exit Sub
E:
MsgBox "表达式错误,检查是否输入了非法字符!"
End Sub
方法2:
Option Explicit
Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As LongPrivate Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean
ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0
End Function
Sub calc(ByVal x As String)
Dim result
ExecuteLine "dim x as double"
ExecuteLine "x= " & x
ExecuteLine "clipboard.settext x"
result = Clipboard.GetText
MsgBox x & "=" & result
Set result = Nothing
End SubPrivate Sub Command1_Click()
calc Text1
End SubPrivate Sub Form_Load()
Text1.Text = "(1+(2*((3-2)-4)))/2" '只要是规则的表达式就可以
End Sub
Text1.Text = "3 * 5 * 9 * 4"
Text2.Text = "6 * 5 * 9"
End Sub'结果显示:145800
Private Sub Command1_Click()
MsgBox CalcText(Text1.Text) * CalcText(Text2.Text)
End Sub'计算文本框类数字连乘函数
Function CalcText(ByVal szText As String) As Long
Dim ret
Dim lngRet As Long
Dim i As Long
CalcText = 0
If szText = "" Or InStr(szText, "*") = 0 Then
Exit Function
End If
If InStr(szText, "*") <> 0 Then
ret = Split(szText, "*")
lngRet = 1
For i = 0 To UBound(ret)
Debug.Print ret(i)
If IsNumeric(ret(i)) Then
lngRet = lngRet * ret(i)
End If
Next
CalcText = lngRet
End If
End Function
Text1.Text = "3 * 5 * 9 * 4"
Text2.Text = "6 * 5 * 9"
End Sub'结果显示:145800
Private Sub Command1_Click()
MsgBox CalcText(Text1.Text) * CalcText(Text2.Text)
End Sub'计算文本框类数字连乘函数
Function CalcText(ByVal szText As String) As Long
Dim ret
Dim lngRet As Long
Dim i As Long
CalcText = 0
If szText = "" Or InStr(szText, "*") = 0 Then
Exit Function
End If
If InStr(szText, "*") <> 0 Then
ret = Split(szText, "*")
lngRet = 1
For i = 0 To UBound(ret)
If IsNumeric(ret(i)) Then
lngRet = lngRet * ret(i)
End If
Next
CalcText = lngRet
End If
End Function
tanaya(蜡笔小新)你好!
text2改变text3即时更新 好象不行啊,请指教。如Private Sub Text2_Change()
Text3.Text = CalcText(Text1.Text) * CalcText(Text1.Text)
End SubFunction CalcText(ByVal szText As String) As Long
Dim ret
Dim lngRet As Long
Dim i As Long
CalcText = 0
If szText = "" Or InStr(szText, "*") = 0 Then
Exit Function
End If
If InStr(szText, "*") <> 0 Then
ret = Split(szText, "*")
lngRet = 1
For i = 0 To UBound(ret)
If IsNumeric(ret(i)) Then
lngRet = lngRet * ret(i)
End If
Next
CalcText = lngRet
End If
End Function
把
Private Sub Text2_Change()
Text3.Text = CalcText(Text1.Text) * CalcText(Text1.Text)
End Sub改为:Private Sub Text2_Change()
Text3.Text = CalcText(Text1.Text) * CalcText(Text2.Text)
End Sub
如:text1=text2/text3 =1/2 后 text1=50% 这样的效果要怎样搞, 我只是改了TEXT1的属性为%这样类型.但还不会显示%. 这个OK就结贴. 谢谢。