这样吗? Dim aa As Double aa = (1 + (5 + 4) * 2) / 3 MsgBox aa
Option Explicit'Reference MicroSoft Script Control Private Sub Form_Load() Dim o As New ScriptControl
o.Language = "VBScript" MsgBox o.Eval("(1+(5+4*2))/3") Set o = 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 Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0 End Function
Private Sub Command1_Click() ExecuteLine "msgbox " & Text1.Text End Sub
利用API实现字符串表达式的计算: 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
to : leolan(史留香) 发生错误,是New ScriptControl 用户类型没定义, 是什么问题?要添加什么组件?
Dim aa As Double
aa = (1 + (5 + 4) * 2) / 3
MsgBox aa
Private Sub Form_Load()
Dim o As New ScriptControl
o.Language = "VBScript"
MsgBox o.Eval("(1+(5+4*2))/3")
Set o = 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 Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean
ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0
End Function
Private Sub Command1_Click()
ExecuteLine "msgbox " & Text1.Text
End Sub
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
发生错误,是New ScriptControl 用户类型没定义,
是什么问题?要添加什么组件?
成功,结帐
用WebBrowser控件
WebBrowser1.Navigate "javascript:" & "(1+(5+4)*2)/3"
msgbox WebBrowser1.Document.body.innerHTML