輸入3525, 4, 344,顯示最大值為344

Private Sub Command1_Click()
Dim a, b, c, max As Long
a = Text1.Text
b = Text2.Text
c = Text3.Text
If a > b Then
max = a
Else
max = b
End If
If c > max Then max = c
Label4.Caption = "最大數為" & max
End Sub
Private Sub Command2_Click()
Label1.Caption = "數a為"
Label2.Caption = "數b為"
Label3.Caption = "數c為"
End Sub
uj5u.com熱心網友回復:
把你的變數宣告寫正確,就能解決問題了。應該這樣寫: Dim a As Long, b As Long, c As Long, max As Long
(或者這樣寫: Dim a&, b&, c&, max As Long)

uj5u.com熱心網友回復:
你a b c 申明時都沒有定義型別 以數字型別比較和以字串型別比較,結果是不一樣,你沒定義 型別 因為文本框是字符弄 所有你 a b c 都是字串型 ,當a和b比較是 是按字串比較的 是b大于a,也就是4>3525,當c和max比較時,由于max是長整形變數,所有是按數值型比較的,所有344>4,所有最大是344,你主要是變數型別使用不統一造成的uj5u.com熱心網友回復:
你沒有定義a,b,c的型別,所以都被當成變體型,所以賦值字串時就是字串型別,所以比較大小時,是按字串比較大小的uj5u.com熱心網友回復:
Dim a As Long, b As Long, c As Long, max As Longa = val(trim(Text1.Text))
b = val(trim(Text2.Text))
c = val(trim(Text3.Text))
uj5u.com熱心網友回復:
字串比較了uj5u.com熱心網友回復:
僅供參考:Private Function Maximum(ParamArray Vals())
Dim n As Integer, MaxVal
On Error Resume Next
MaxVal = Vals(0)
For n = 1 To UBound(Vals)
If Vals(n) > MaxVal Then MaxVal = Vals(n)
Next n
Maximum = MaxVal
End Function
uj5u.com熱心網友回復:
Max = Maximum(MyR, MyG, MyB)
uj5u.com熱心網友回復:
變數的宣告應該分開宣告,連在一起會出錯的,像這樣Dim a As Long, b As Long, c As Long, max As Long
像你先前那樣就會,以數字型別比較和以字串型別比較,結果會不一樣
a = val(trim(Text1.Text))
b = val(trim(Text2.Text))
c = val(trim(Text3.Text))
這樣才能把值賦給字母
uj5u.com熱心網友回復:
要分清楚數值與字串uj5u.com熱心網友回復:
首先,你的未知數的定義格式不正確,應該為dim a%,b%,max%其次,比較的是數值,而非字符,所以你得把文本框里的字符轉換為數值,即a=Val(text1,text)以此類推
uj5u.com熱心網友回復:
你這sub end if 什么的都沒正常結束啊,檢查檢查你的語法轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/46898.html
標籤:VB基礎類
上一篇:VB下載二進制流檔案如何實作?
