界面上有個text10控制元件,里面有個公式是 A-B
以下代碼實作的是,利用VBScript語言 eval函式識別文本框中的 公式“A-B”,可是結果一直不正確。
我將Label10 = s.Eval(Text10.Text) 改為Label10 = s.Eval(A-B) 結果是對的。
根據判斷,執行程序中,Text10.Text=“A-B”,就是多了雙引號,導致結果為0,不正常。所以,請大神們幫我解決以下。如何寫這部分。
Private Sub Command13_Click()
Dim A As Long
Dim B As Long
A = 2
B = 444
Dim s
If Text10 = "" Then Exit Sub
On Error GoTo errHandler
Set s = CreateObject("ScriptControl")
s.Language = "VBScript"
Label10 = s.Eval(Text10.Text) 問題在這里,如果寫A-B 運行正常,如果寫成Text10.Text,不正常,文本框內容還是A-B但是,在這里,變成了“A-B”,這個雙引號如果去不掉,沒有辦法做計算。
Set s = Nothing
flag = True
Exit Sub
errHandler:
Text10 = Err.Description
End Sub
uj5u.com熱心網友回復:
Private Sub Command13_Click()
Dim A As Long
Dim B As Long
Dim s
Dim tmp As String
A = 2
B = 444
If Text10 = "" Then Exit Sub
On Error GoTo errHandler
Set s = CreateObject("ScriptControl")
s.Language = "VBScript"
tmp = Replace(Text10.Text, " ", "")
If tmp = "A-B" Then Label10 = s.Eval(A - B)
Set s = Nothing
flag = True
Exit Sub
errHandler:
Text10 = Err.Description
End Sub
uj5u.com熱心網友回復:
Private Sub Command13_Click()VB 并不知道你 Text10 中的字符 "A" 是參考變數 A,,字符 "B" 是參考變數 B。因此使用預設值 0。
Dim A As Long
Dim B As Long
Dim s
A = 2
B = 444
If Text10 = "" Then Exit Sub
On Error GoTo errHandler
Set s = CreateObject("ScriptControl")
s.Language = "VBScript"
Text10.Text = Replace(Text10, "A", A)
Text10.Text = Replace(Text10, "B", B)
Label10 = s.Eval(Text10.Text)
Set s = Nothing
flag = True
Exit Sub
errHandler:
Text10 = Err.Description
End Sub
uj5u.com熱心網友回復:
Private Sub Command13_Click()
'-- 定義在這里是不能被Eval呼叫的 --
'Dim A As Long
'Dim B As Long
'A = 2
'B = 444
Dim s
If Text10 = "" Then Exit Sub
On Error GoTo errHandler
Set s = CreateObject("ScriptControl")
s.Language = "VBScript"
'-- 添加變數(可以省略 Dim 陳述句) --
s.AddCode "A = 2"
s.AddCode "B = 444"
Label10 = s.Eval(Text10.Text)
Set s = Nothing
flag = True
Exit Sub
errHandler:
Text10 = Err.Description
End Sub
uj5u.com熱心網友回復:
你那個s.Eval(A-B)相當于s.Eval(2-444) 當然有效果了。因為在vb中這樣寫 A-B是交給vb去處理的。 而你寫s.Eval("A-B")是交給VBScript腳本宿主處理的了。所以變數賦值要么都放到腳本里面,若果放到vb里面那么就要做好對接。就看你的目的是什么了。
2樓的是將兩者做了對接的,3樓是將AB變數賦值的代碼都移到腳本里執行的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/60967.html
標籤:VB基礎類
上一篇:生成exe的問題
