随机抽取整条数据

来源:百度知道 编辑:UC知道 时间:2024/05/10 07:55:44
我想随机抽取表1中的20条记录,将随机抽取序号放在表2中,将抽取的数据信息放在表3中,以下是我的代码,表2可以看到抽取的20个随机数,但表3只有最后一个随机数的记录显示,哪位高手帮我看一下,谢谢~
Sub getrnd()
Randomize
Worksheets(2).Select
Worksheets(2).Cells.ClearContents
Application.ScreenUpdating = False
For i = 1 To 20 '20表示要取出的随机数个数为20个。
rndint: cll = Int(Rnd() * 105)
While cll = 0
cll = Int(Rnd() * 105)
Wend
For k = 1 To i
If Worksheets(1).Range("a1:a105").Cells(cll) = Worksheets(2).Cells(k, 1) Then
GoTo rndint
End If
Next k
Worksheets(2).Range("a1:e4").Cells(i) = Worksheets(1).Range("a1:a105").Cells(cll)
'"a1:e4"表示将取出的数字放入这块区域a1:a105是抽取数的范围
Sheets("sheet1").Select
Rows(Worksheets(1).Range("a1:a105").Cells(cll)).Select
Selection.Copy
Sheets("Sheet3").Select
Rows("1:20").Select
ActiveSheet.Paste
Next i
Application.ScreenUpda

Sub getrnd()
Randomize
Worksheets(2).Select
Worksheets(2).Cells.ClearContents
Application.ScreenUpdating = False
For i = 1 To 20 '20表示要取出的随机数个数为20个。
rndint: cll = Int(Rnd() * 105)
While cll = 0
cll = Int(Rnd() * 105)
Wend
For k = 1 To i
If Worksheets(1).Range("a1:a105").Cells(cll) = Worksheets(2).Cells(k, 1) Then
GoTo rndint
End If
Next k
Worksheets(2).Range("a1:e4").Cells(i) = Worksheets(1).Range("a1:a105").Cells(cll)
'"a1:e4"表示将取出的数字放入这块区域a1:a105是抽取数的范围
Sheets("sheet1").Select
Rows(Worksheets(1).Range("a1:a105").Cells(cll)).Select
Selection.Copy
Sheets("Sheet3").Select
Rows("1:30").Select
ActiveSheet.Paste
Next i
Application.ScreenUpdating = True
End Sub