可以调用excel实现'----------------------------------- Function result(ByVal x As String) Dim myobj As Object Set myobj = CreateObject("excel.sheet") Set myobj = myobj.Application.ActiveWorkbook.ActiveSheet myobj.Range("a1").Formula = "= " & x result = myobj.Range("a1").Value If Err.Number > 0 Then MsgBox Err.Description Set myobj = Nothing End Function Private Sub Command1_Click() Dim x As String x = Text1.Text Text2 = result(x) End Sub Private Sub Form_Load() Text1.Text = "312*9345" End Sub'在excel20003+vb+winxp下成功
可以考虑用Microsoft Script Control
'添加 Text1Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Call calc(Text1) End SubSub calc(tmpstr As String) Set sc = CreateObject("ScriptControl") sc.Language = "VBScript" Text1.Text = sc.Eval(tmpstr) Set sc = Nothing End Sub
用ScriptControl非常简单,不过如果真要用,还是用专业的数学软件的好。
在不使用Microsoft Script Control的情况下也自己用栈的算法编程实现,不难的。
晕倒, 为何一个问题为何老是要发N个帖 ?...................VbScript 你不喜欢, 下面这个你再不能接受的话, 我想你只有去找 彼尔 啦......... 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 Long Private Sub Command1_Click() ExecuteLine "RtnVal = " & Text1.Text ExecuteLine "clipboard.settext RtnVal" Text1.Text = Clipboard.GetText End Sub Public Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, fCheckOnly) = 0 End Function
Function result(ByVal x As String)
Dim myobj As Object
Set myobj = CreateObject("excel.sheet")
Set myobj = myobj.Application.ActiveWorkbook.ActiveSheet
myobj.Range("a1").Formula = "= " & x
result = myobj.Range("a1").Value
If Err.Number > 0 Then MsgBox Err.Description
Set myobj = Nothing
End Function
Private Sub Command1_Click()
Dim x As String
x = Text1.Text
Text2 = result(x)
End Sub
Private Sub Form_Load()
Text1.Text = "312*9345"
End Sub'在excel20003+vb+winxp下成功
If KeyAscii = 13 Then Call calc(Text1)
End SubSub calc(tmpstr As String)
Set sc = CreateObject("ScriptControl")
sc.Language = "VBScript"
Text1.Text = sc.Eval(tmpstr)
Set sc = Nothing
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 Private Sub Command1_Click()
ExecuteLine "RtnVal = " & Text1.Text
ExecuteLine "clipboard.settext RtnVal"
Text1.Text = Clipboard.GetText
End Sub Public Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean
ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, fCheckOnly) = 0
End Function
推荐一个示例程序,可以直接用,还有源代码,LZ一定试下。
http://download.csdn.net/detail/txzsp/3781512