理论上,下面的程序应读取学生的姓名和身高,如果在“螺柱”中插入了空值,则循环应结束。最终目标是显示最高学生的姓名和身高。我使用变量“ K”来标识哪个值是循环中的最高值,但是我遇到了死胡同。 不幸的是,我坚持:
FIRST当插入空的“ Stud”时结束循环;第二个确定最高学生的名字 第三,最后在MsgBox中创建一个表格,说明每个学生的姓名和身高
非常感谢,
Sub C4()
Dim Stud As String
Dim High As Single
Dim cat As String
Dim k As Byte
Stud = InputBox("Name")
High = InputBox("Hight[cm]")
Do While Stud <> ""
k = High
cat = cat & Stud & (" ") & Str(High) & Chr(10)
Stud = InputBox("Name")
High = InputBox("Hight[cm]")
If k > High Then
High = k
Else: High = High
End If
Loop
MsgBox cat
End Sub
答案 0 :(得分:0)
在这里用尽可能少的更改来更正代码,以便您可以了解出了什么问题。在这种情况下,我也建议使用用户表单:
Option Explicit
Sub C4()
Dim Stud As String
Dim High As Long
Dim TallestStudent As String
Dim cat As String
Dim k As Long
Stud = InputBox("Name")
High = InputBox("Height[cm]")
cat = Stud & (" ") & Str(High) & Chr(10)
k = High
TallestStudent = Stud
Do While Stud <> ""
Stud = InputBox("Name")
If Stud = "" Then
Exit Do
End If
High = InputBox("Height[cm]")
If k < High Then
k = High
TallestStudent = Stud
End If
cat = cat & Stud & (" ") & Str(High) & Chr(10)
Loop
MsgBox cat & Chr(10) & "The Tallest Student was: " & TallestStudent
End Sub
因此,使您的三点切实可行:
第一点:在这里,您必须确保在没有给出名称后立即退出循环(使用Exit Do)
第二点:在最后完成。您的代码中High
不清楚。现在是每个学生的身高,新的Dim TallestStudent
给出了最高学生的名字。
第三点:现在,消息返回姓名和身高以及不在代码中的最高学生。