热心网友
回答时间:2025-01-10 12:34
不知道你为什么要循环两次..
你循环一次,把最大的和最小的都找出来,循环完毕直接交换不就得了么
Private Sub Command1_Click()
Dim Min%, iMin%, Max%, iMax%
Max = Combo1.List(0)
iMax = 0
Min = Combo1.List(0)
iMin = 0
Dim i As Integer
'一个循环分别找出最大数的index,和最小数所在的index
For i = 0 To Combo1.ListCount - 1
If Val(Combo1.List(i)) > Max Then Max = Val(Combo1.List(i)): iMax = i
If Val(Combo1.List(i)) < Min Then Min = Val(Combo1.List(i)): iMin = i
Next i
'最小值和第一个交换
Dim tmp
tmp = Combo1.List(0)
Combo1.List(0) = Combo1.List(iMin)
Combo1.List(iMin) = tmp
'最大值和最后一个交换
tmp = Combo1.List(Combo1.ListCount - 1)
Combo1.List(Combo1.ListCount - 1) = Combo1.List(iMax)
Combo1.List(iMax) = tmp
End Sub
收起