高分请高手帮我解决一下VB问题,急!!!

谁能帮我看看这里出现了什么问题!急急急急急!!!!OptionExplicitPrivateSubsesso()Dimf,mAsBytef=0m=0IfLCase(txt... 谁能帮我看看这里出现了什么问题!急急急急急!!!!
Option Explicit
Private Sub sesso()
Dim f, m As Byte
f = 0
m = 0
If LCase(txtsesso1.Text) = f Then
f = f + 1
ElseIf LCase(txtsesso1.Text) = m Then
m = m + 1
End If
If LCase(txtsesso2.Text) = f Then
f = f + 1
ElseIf LCase(txtsesso2.Text) = m Then
m = m + 1
End If
If LCase(txtsesso3.Text) = f Then
f = f + 1
ElseIf LCase(txtsesso3.Text) = m Then
m = m + 1
End If
lblrisultato.Caption = "I componenti maschili sono:" & m & " e i componenti femminili sono:" & f
End Sub
Private Function anziano(ByVal eta1, eta2, eta3 As Byte) As Integer
Dim magg As Byte
If eta1 > eta2 Then
magg = eta1
Else
magg = eta2
End If
If magg < eta3 Then
magg = eta3
End If
anziano = 2009 - magg
End Function
Private Function nome() As String
Dim nome1, nome2, nome3, min As Byte

nome1 = Len(txtnome1.Text)
nome2 = Len(txtnome2.Text)
nome3 = Len(txtnome3.Text)
If nome1 > nome2 Then
min = nome2
Else
min = nome1
End If
If min > nome3 Then
min = nome3
End If
Select Case min
Case Is = nome1: nome = txtnome1.Text
Case Is = nome2: nome = txtnome2.Text
Case Is = nome3: nome = txtnome3.Text
End Select

End Function
Private Function media(eta1, eta2, eta3 As Byte) As Byte
media = (eta1 + eta2 + eta3) / 3
End Function
Private Function differenza(ByVal eta1, eta2, eta3 As Byte) As Byte
Dim magg, min As Byte
If eta1 < eta2 Then
magg = eta2
min = eta1
Else
magg = eta1
min = eta2
End If
If magg < eta3 Then
magg = eta3
End If
If min > eta3 Then
min = eta3
End If
differenza = magg - min
End Function
Private Sub cmdcalcola_Click()
Dim x1, x2, x3, scelta As Byte

If IsNumeric(txteta1.Text) And IsNumeric(txteta2.Text) And IsNumeric(txteta3.Text) And IsNumeric(txtscelta.Text) Then
scelta = Val(txtscelta.Text)
If Val(txteta1.Text) > 0 And Val(txteta2.Text) > 0 And Val(txteta3.Text) > 0 Then
x1 = Val(txteta1.Text)
x2 = Val(txteta2.Text)
x3 = Val(txteta3.Text)
Else
MsgBox "Et?delle persone non pu?mai essere sotto zero.", vbCritical, "Et?"
End If
Else
MsgBox "Inserisce i valori numerici nelle caselle delle et?e della scelta.", vbCritical, "Attenzione!"
End If
Select Case scelta
Case 1: sesso
Case 2: lblrisultato.Caption = "L'anno di nascita del componente pi?anziano ?" & anziano(x1, x2, x3)
Case 3: lblrisultato.Caption = "Il nome pi?corto dei componenti sono:" & min
Case 4: lblrisultato.Caption = "Et?media della famiglia ?" & media(x1, x2, x3)
Case 5: lblrisultato.Caption = " La differenza tra eta' maggiore e eta' minore e':" & differenza(x1, x2, x3)
Case Else: MsgBox "La scelta inserita non corrisponde a nessun scelta disposta.", vbCritical, "Scelta."
End Select
End Sub
展开
 我来答
老人与孩v动手洞脑
2009-04-07 · TA获得超过599个赞
知道小有建树答主
回答量:400
采纳率:0%
帮助的人:359万
展开全部
修改了几处:
1. 将原来的2处 Dim min As Byte 删除,放到了第二行,改为模块级变量;
2、将原来3个函数最后一个参数的 As Byte删除了;
修改后的代码如下:
Option Explicit
Dim min As Byte
Private Sub sesso()
Dim f, m As Byte
f = 0
m = 0
If LCase(txtsesso1.text) = f Then
f = f + 1
ElseIf LCase(txtsesso1.text) = m Then
m = m + 1
End If
If LCase(txtsesso2.text) = f Then
f = f + 1
ElseIf LCase(txtsesso2.text) = m Then
m = m + 1
End If
If LCase(txtsesso3.text) = f Then
f = f + 1
ElseIf LCase(txtsesso3.text) = m Then
m = m + 1
End If
lblrisultato.Caption = "I componenti maschili sono:" & m & " e i componenti femminili sono:" & f
End Sub
Private Function anziano(ByVal eta1, eta2, eta3) As Integer
Dim magg As Byte
If eta1 > eta2 Then
magg = eta1
Else
magg = eta2
End If
If magg < eta3 Then
magg = eta3
End If
anziano = 2009 - magg
End Function
Private Function nome() As String
Dim nome1, nome2, nome3

nome1 = Len(txtnome1.text)
nome2 = Len(txtnome2.text)
nome3 = Len(txtnome3.text)
If nome1 > nome2 Then
min = nome2
Else
min = nome1
End If
If min > nome3 Then
min = nome3
End If
Select Case min
Case Is = nome1: nome = txtnome1.text
Case Is = nome2: nome = txtnome2.text
Case Is = nome3: nome = txtnome3.text
End Select

End Function
Private Function media(eta1, eta2, eta3) As Byte
media = (eta1 + eta2 + eta3) / 3
End Function
Private Function differenza(ByVal eta1, eta2, eta3) As Byte
Dim magg
If eta1 < eta2 Then
magg = eta2
min = eta1
Else
magg = eta1
min = eta2
End If
If magg < eta3 Then
magg = eta3
End If
If min > eta3 Then
min = eta3
End If
differenza = magg - min
End Function
Private Sub cmdcalcola_Click()
Dim x1, x2, x3, scelta As Byte

If IsNumeric(txteta1.text) And IsNumeric(txteta2.text) And IsNumeric(txteta3.text) And IsNumeric(txtscelta.text) Then
scelta = Val(txtscelta.text)
If Val(txteta1.text) > 0 And Val(txteta2.text) > 0 And Val(txteta3.text) > 0 Then
x1 = Val(txteta1.text)
x2 = Val(txteta2.text)
x3 = Val(txteta3.text)
Else
MsgBox "Et?delle persone non pu?mai essere sotto zero.", vbCritical, "Et?"
End If
Else
MsgBox "Inserisce i valori numerici nelle caselle delle et?e della scelta.", vbCritical, "Attenzione!"
End If
Select Case scelta
Case 1: sesso
Case 2: lblrisultato.Caption = "L'anno di nascita del componente pi?anziano ?" & anziano(x1, x2, x3)
Case 3: lblrisultato.Caption = "Il nome pi?corto dei componenti sono:" & min
Case 4: lblrisultato.Caption = "Et?media della famiglia ?" & media(x1, x2, x3)
Case 5: lblrisultato.Caption = " La differenza tra eta' maggiore e eta' minore e':" & differenza(x1, x2, x3)
Case Else: MsgBox "La scelta inserita non corrisponde a nessun scelta disposta.", vbCritical, "Scelta."
End Select
End Sub
如果有不对的地方,请给我留言。
Ynzsvt
2009-04-07 · TA获得超过6677个赞
知道大有可为答主
回答量:1.5万
采纳率:40%
帮助的人:3179万
展开全部
Dim f, m As Byte
改为:
dim f as Byte,m as Byte

其他也一样!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式