早教吧 育儿知识 作业答案 考试题库 百科 知识分享

vba取得N个随机数去重问题Subtest()Dima(1To20)AsInteger‘从sheet2的40条数据中随机取出20条数据放入sheet1Fori=1To20yes=1DoWhileyes=1Randomizex=Int((40*Rnd)+2)yes=0Forj=1Toi‘将取到的随机

题目详情
vba取得N个随机数去重问题
Sub test()
Dim a(1 To 20) As Integer ‘从sheet2的40条数据中随机取出20条数据放入sheet1
For i = 1 To 20
yes = 1
Do While yes = 1
Randomize
x = Int((40 * Rnd) + 2)
yes = 0
For j = 1 To i ‘将取到的随机数与已经取到的数字经行对比.
If x = a(j) Then
yes = 1
Exit For
End If
Next j
Loop
a(i) = x '取得的随机数放入数组中
Worksheets("sheet2").Rows(x).Copy Worksheets("sheet1").Rows(i)
Next i
End Sub
测试结果显示这个代码会取出重复数据,我已经对重复数据进行了判断,
▼优质解答
答案和解析
因为你sheet2的40条数据有重复数据 For j = 1 To i ‘将取到的随机数与已经取到的数字经行对比.            &nbs...