VB 关于如何在inputbox里输入任意个数

用inputbox输入a,然后用选择语句来判断a值是否为及格,不及格,良好等。困惑点:PrivateSubCommand1_Click()a=InputBox("请输入分... 用inputbox输入a,然后用选择语句来判断a值是否为及格,不及格,良好等。
困惑点:Private Sub Command1_Click()

a = InputBox("请输入分数")

If a = "" Then
MsgBox "您未输入数据!!!", , "成绩统计(无数组)"
Else

If Not IsNumeric(a) Or a < 0 Or a > 100 Then
MsgBox "您输入的数据不对!!!", , "成绩统计(无数组)"

End If
End If

End Sub

Private Sub Command2_Click()
If a >= 90 Then
c = c + 1

ElseIf a >= 80 Then
d = d + 1

ElseIf a >= 70 Then
e = e + 1

ElseIf a >= 60 Then

f = f + 1

Else
g = g + 1
End If

b = c + d + e + f + g

Text1 = b
Text2.Text = c
Text3 = d
Text4 = e
Text5 = f
Text6 = g
End Sub

Private Sub Command4_Click()
End
End Sub
输入这个程序,结果只能判断一个a,即最后输入的a。为什么?
如图所示
展开
 我来答
尘入蜓孟影食1038
2010-04-17 · TA获得超过3513个赞
知道大有可为答主
回答量:2307
采纳率:87%
帮助的人:1357万
展开全部
1、原因:
inputbox函数输入的是一个字符串。
你对这个字符串做a < 0 Or a > 100 判断是无效的!!!

2、你的要求是依次输入多个数值,自动按照数组处理。不知道我说的对不对?

3、解决方法:
使用数组。
代码如下:
Private Sub Command1_Click()
Dim 数组, a As String, 个数 As Integer, 成绩() As Single
Dim 优秀数 As Integer, 优良数 As Integer, 良好数 As Integer, 合格数 As Integer, 不合格数 As Integer
Do
Cls
Do
a = InputBox("请输入分数(成绩之间用英文逗号分隔)")
If a = "" Then
MsgBox "您未输入数据!!!", , "成绩统计(无数组)"
Else
Exit Do
End If
Loop
数组 = Split(a, ",")
个数 = UBound(数组)
For i = 0 To 个数
If Not IsNumeric(数组(i)) Then
MsgBox "您输入的第" & i + 1 & "个数据不是数字!!!", , "成绩统计(无数组)"
Exit For
Else
成绩(i) = Val(数组(i))
If 成绩(i) < 0 Or 成绩(i) > 100 Then
MsgBox "您输入的第" & i + 1 & "个数据不是有效成绩!!!", , "成绩统计(无数组)"
Exit For
End If
End If
Select Case 成绩(i)
Case Is < 60
不合格数 = 不合格数 + 1
Case Is < 70
合格数 = 合格数 + 1
Case Is < 80
良好数 = 良好数 + 1
Case Is < 90
优良数 = 优良数 + 1
Else
优秀数 = 优秀数 + 1
End Select
Next i
Exit Do
Loop
Print "成绩:"; a
Print "其中:"
Print Tab(5); "优秀人数:"; 优秀数
Print Tab(5); "优良人数:"; 优良数
Print Tab(5); "良好人数:"; 良好数
Print Tab(5); "合格人数:"; 合格数
Print Tab(5); "不合格人数:"; 不合格数
End Sub
百度网友ecafeb0
2010-04-18 · TA获得超过705个赞
知道小有建树答主
回答量:1049
采纳率:0%
帮助的人:347万
展开全部
Private Sub 输入_Click()
Dim x%, y%, z%, a%
x = InputBox("请输入学生人数:", "输入学生人数:", 1)
Text1 = x
For y = 1 To x
tiao:
z = InputBox("请输入第" & y & "个学生的成绩:", "学生成绩输入", 0)
If z < 0 Or z > 100 Then
a = MsgBox("如果要重新输入请按(重试);如果想退出请按(终止);如果不想重新输入请按(忽略),则认为该学生的成绩为(0)分!", 66, "错误提示")
If a = 3 Then
Text1 = y - 1
Exit For
ElseIf a = 4 Then
GoTo tiao
Else
z = 0
End If
End If
Select Case z
Case 90 To 100
Text2 = Val(Text2) + 1
Case 80 To 89
Text3 = Val(Text3) + 1
Case 70 To 79
Text4 = Val(Text4) + 1
Case 60 To 69
Text5 = Val(Text5) + 1
Case 0 To 60
Text6 = Val(Text6) + 1
End Select
Next

End Sub

Private Sub 显示_Click()
Static x%
x = x + 1
If x = 1 Then
Text1.Visible = False
Text2.Visible = False
Text3.Visible = False
Text4.Visible = False
Text5.Visible = False

朱雄亮 18:57:16
Text6.Visible = False
ElseIf x = 2 Then
Text1.Visible = True
Text2.Visible = True
Text3.Visible = True
Text4.Visible = True
Text5.Visible = True
Text6.Visible = True
x = 0
End If
End Sub

Private Sub 结束_Click()
End
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式