刚学习VB没多久吧,好好加油~
错误有点多,我帮你改正过来了~
不同之处,你慢慢看吧~
程序测试已通过,还有什么不明白的地方
Email:fightiger1986@163.com
Option Explicit ‘要习惯定义,而且尽量不要定义变体型的变量
Private Type WorType ’在本窗体定义type要加private关键字
Name As String * 5
Wornum As Long
Worwap As Single
End Type
Dim work() As WorType
Dim n%
Dim Message As String, Title As String
Dim Default As Integer
Dim MyValue As Integer
Private Sub Form_Load()
Message = "输入人数"
Title = "输入选择"
Default = "1"
n = 0
MyValue = InputBox(Message, Title, Default)
End Sub
Private Sub Command1_Click()
If n >= MyValue Then
MsgBox ("输入人数超过数组的个数")
MyValue = InputBox(Message, Title, n + 1)
Else
ReDim Preserve work(MyValue)
With work(n)
.Name = Text1.Text
.Wornum = Val(Text2.Text)
.Worwap = Val(Text3.Text)
End With
Text1 = "": Text2 = "": Text3 = "":
n = n + 1
End If
End Sub
Private Sub Command2_Click()
Dim i As Integer
Dim j As Integer
Dim t As WorType
For i = 0 To n - 1
For j = 0 To n - 2 - i
If work(j).Worwap > work(j + 1).Worwap Then
t = work(j)
work(j) = work(j + 1)
work(j + 1) = t
End If
Next j
Next i
For i = 0 To n - 1
Print work(i).Name; work(i).Wornum; work(i).Worwap
Next i
End Sub
Private Type WorType '改动0
Name As String * 5
Wornum As Long
Worwap As Single
End Type
Dim work() As WorType
Dim n%
Dim Message, Title, Default, MyValue
Private Sub Form_Load()
Message = "输入人数"
Title = "输入选择"
Default = "1"
MyValue = InputBox(Message, Title, Default)
n = 0 '改动1
End Sub
Private Sub Command1_Click()
If n >= MyValue Then
MsgBox ("输入人数超过数组的个数")
Else
ReDim Preserve work(n) '改动2
With work(n)
.Name = Text1
.Wornum = Text2
.Worwap = Text3
End With
Text1 = "": Text2 = "": Text3 = "":
n = n + 1
End If
End Sub
Private Sub Command2_Click()
Dim i As Integer
Dim j As Integer
Dim t As WorType '改动3
For i = 0 To UBound(work) '改动4
For j = 0 To UBound(work) - 1 - i '改动5
If work(j).Worwap > work(j + 1).Worwap Then
t = work(j) '改动6
work(j) = work(j + 1) '改动7
work(j + 1) = t '改动8
End If
Next j
Next i
For i = 0 To MyValue - 1
Print work(i).Name; work(i).Wornum; work(i).Worwap
Next i
End Sub