1,451
社区成员
发帖
与我相关
我的任务
分享
Private Sub Command1_Click()
Dim s$, i%, intTmp%
Randomize
For i = List1.ListCount To 0 Step -1
intTmp = Int(Rnd * i)
s = List1.List(intTmp)
List1.RemoveItem intTmp
List1.AddItem s
Next
End Sub
但是数据量大的时候还是用数组好,直接操作控件毕竟效率低。
Option Explicit
Private Sub Command1_Click()
Dim i As Long, j As Long
Dim ListCount As Long
Dim tmp As String
ListCount = List1.ListCount - 1
Randomize
For i = 0 To ListCount
j = Int((ListCount - i + 1) * Rnd + i)
tmp = List1.List(i)
List1.List(i) = List1.List(j)
List1.List(j) = tmp
Next
End Sub
Private Sub Form_Load()
Dim i As Long
For i = 65 To 90
List1.AddItem Chr(i)
Next
End Sub
Private Sub Command1_Click()
Dim v, s$, i%, intTmp%
For i = 0 To List1.ListCount - 1
s = s & List1.List(i) & vbCrLf
Next
If s = "" Then Exit Sub
s = Left(s, Len(s) - 2)
v = Split(s, vbCrLf)
Randomize
List1.Clear
For i = UBound(v) To 0 Step -1
intTmp = Int(Rnd * i)
List1.AddItem v(intTmp)
v(intTmp) = v(i)
ReDim Preserve v(i)
Next
End Sub