Option Explicit
Dim sc As New ScriptControl
Private Sub Command1_Click()
Dim Temp As Integer
sc.Language = "VBSCRIPT"
StrTemp = sc.Eval(Text1.Text)
Text2.Text = Temp
End Sub
執行結果:
當在Text1內輸入 "2+3"之後,
Text2會顯示出 "5"
可是小弟有一個疑問,
吾人如何檢驗使用者輸入Text1的語法是正確的呢???
例如:
"2a+3" OR "2+3=" 時,
電腦會告知<語法錯誤>!!!
有煩大家指點,謝謝!
Dim sc As New ScriptControl
Private Sub Command1_Click()
Dim Temp As Integer
sc.Language = "VBSCRIPT"
StrTemp = sc.Eval(Text1.Text)
Text2.Text = Temp
End Sub
執行結果:
當在Text1內輸入 "2+3"之後,
Text2會顯示出 "5"
可是小弟有一個疑問,
吾人如何檢驗使用者輸入Text1的語法是正確的呢???
例如:
"2a+3" OR "2+3=" 時,
電腦會告知<語法錯誤>!!!
有煩大家指點,謝謝!
文章標籤
全站熱搜

StrTemp = sc.Eval("On Error Resume Next" & vbNewLine & Text1.Text & vbNewLine & "On Error Resume Next")
心冷熱情熄, 感謝你的再次協助, 小弟為此十分感動, 只是.... 你可否幫我解釋一下你幫我的解答的語法, 小弟資質駑鈍, 實在看不懂你的解答, 而且自己執行後, 電腦的確告訴我<語法錯誤!> 但... 那不是我想要的結果欸~ 比如: 我輸入"2a+3"後,電腦會出現<語法錯誤>的訊息. 但, 我輸入"2+3"後,理應出現"5",不過電腦猶然出現<語法錯誤>的訊息 再次叨擾, 不便處, 請見諒!!!!
之前沒仔細看,很多地方是錯的。 最後應該用 On Error goto 0 ,也就是重置 On Error Resume Next vbNewLine 為換行常數,但是你用的是 Eval ,只執行一行,所以要把 vbNewLine 換成 : 才可以,此外,你要取回計算結果,若用 : 來處理,只會得到 On Error Goto 0 的結果,也就是 Empty ,所以前文對你內容無效。 你的情形可能要使用 ScriptControl 的 Error ,在 Error 中做 Error.Clear 。 你可以參考:http://msdn.microsoft.com/library/en-us/dnexpvb/html/updatingvbscriptroutine.asp
嗯! 了解! 謝謝你囉! 你真的是一個古道熱腸的人!