chứ không dùng [php] nên dòng lệnh thực và dòng ghi chú cùng màu, lẫn vào nhau. Xin lỗi nhé.[/QUOTE]
[PHP]Function Draw(Arr, Amount As Long)
Dim index As Long, k As Long, d As Long, c As Long, tmpArr, original
If Amount > UBound(Arr) - LBound(Arr) + 1 Then Exit Function
original = Arr
ReDim tmpArr(1 To Amount)
d = LBound(original)
c = UBound(original)
Randomize
For k = 1 To Amount
index = Int(Rnd() * (c - d - k + 2)) + d + k - 1
tmpArr(k) = original(index)
original(index) = original(k + LBound(original) - 1)
d = d + 1
Next k
Draw = tmpArr
End Function
[/PHP]
[PHP]Sub Test1()
Dim sArr(), tArr(), i&, iSo&
sArr = Array(1, 2, 3, 4, 5, 9)
iSo = 4
tArr = Draw(sArr, iSo)
For i = 1 To iSo
Cells(i, 2) = tArr(i)
Next i
End Sub[/PHP]
Vậy thêm dòng
[PHP]If index > c Then index = c[/PHP]
Thì OK. Code của NDU cũng vậy.