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-4/5" 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 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-4/5"
End Sub
我自己做过一个计算程序,分析起来是比较复杂的,能够支持多级括号的四则运算。
还有一个OBJECT引用也可以解决,但忘记在哪里,你可以搜索一下这个引用的方法,搜索单词用
“计算”,“表达式”来试试。