Private Sub Text2_Change()
Dim a, b, c As Single
a = CSng(Text1.Text)
b = CSng(Text2.Text)
c = CSng(Text3.Text)
If Option1.Value = True Then
Call opt1
Text5.Text = a / b
ElseIf Option2.Value = True Then
Call opt2
Text5.Text = c / b
End If
End Sub
通用視窗函式宣告
Sub opt1()
Form1.Text3.Locked = True
Form1.Text3.BackColor = &H80000010
End Sub
Sub opt2()
Form1.Text1.Locked = True
Form1.Text1.BackColor = &H80000010
End Sub
請問這段程式有什么問題,感謝各位
uj5u.com熱心網友回復:
問題出在Text5.Text賦值上計算的結果是數值
加上Str就好
Text5.Text = Str(a / b)
uj5u.com熱心網友回復:
在 Text2.Text 輸入值時出現型別不匹配,怎么回事,我覺得沒有問題
uj5u.com熱心網友回復:
要不這樣看看先
Dim a, b, c As String
a = Text1.Text
b = Text2.Text
c = Text3.Text
然后
Text5.Text = Str(CSng(a) / CSng(b))
uj5u.com熱心網友回復:
1L說的沒錯阿.出問題的陳述句在text2_change中,當然是text2輸入時報錯。
uj5u.com熱心網友回復:
請問一下,那要怎么改
uj5u.com熱心網友回復:
在text2_change中的兩處text5.tex=改為如下:text5.text=cstr(a/b)
text5.text=cstr(c/d)
uj5u.com熱心網友回復:
代碼沒有錯.a = CSng(Text1.Text)
b = CSng(Text2.Text)
c = CSng(Text3.Text)
'當你在更改Text2 的內容時,你要確信 Text1 Text2 Text3內的內容均為數值.
建議作如下更改:
........
........
If IsNumeric(Text1.Text) And IsNumeric(Text2.Text) And IsNumeric(Text3.Text) Then '判斷 Text1 Text2 Text3 是否為數值
a = CSng(Text1.Text)
b = CSng(Text2.Text) '增加一句 if B=0 then B=1 'B不能等于0,要不后面會出現錯誤.
c = CSng(Text3.Text)
Else
a = 0
b = 1 'B不能等于0,要不后面會出現錯誤.
c = 0
'Text1 Text2 Text3 中有非數值內容
End If
..........
..........
uj5u.com熱心網友回復:
b 不能等于0,三個文本框中必須都要限制是整數uj5u.com熱心網友回復:
坐等高手解答``uj5u.com熱心網友回復:
問題在text2_change這個事件上,只要text2里面的內容一發生變化,馬上啟動下面的程式。關鍵是你要實作這個目標的思路是什么?為什么把text2_change下的程式要放在text2發生變化的事件里呢?只要text2一輸入一個字符,也就是說它的內容發生了變化,此時,下面的程式已經觸發。所以請想哈變通辦法,不要用text2_change這個事件。uj5u.com熱心網友回復:
給text賦值用不著轉換,不然你隨便在程式里試一下就知道了。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/153356.html
標籤:VB基礎類
上一篇:Public IID_IClassFactory As IID 的IID找不到,是怎么回事,請求指點!
下一篇:zedgraph 圖片保存
