早教吧作业答案频道 -->其他-->
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
测试结果显示这个代码会取出重复数据,我已经对重复数据进行了判断,
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...
看了 vba取得N个随机数去重问题...的网友还看了以下:
0.01中1循环+0.12中2循环+0.23中3循环+0.34中4循环+0.78中8循环+0.89 2020-05-16 …
设f(x)=[g(x)-e^(-x)]/x(x不等于0)0(x=0),其中g(x)是有二阶连续函数 2020-05-17 …
A.中性粒细胞0.65,淋巴细胞0.30B.淋巴细胞0.60,中性粒细胞0.35C.淋巴细胞0.50 2020-06-04 …
假设在过点O(0,0)和A(π,0)的曲线族y=asinx(a>0)中,有一条曲线L,使沿该曲线从 2020-06-22 …
在函数f(x)=sinx/x(x→0)中,不论x为多少f(x)值都为0.017452406但在Li 2020-06-24 …
线性代数设有齐次线性方程组Ax=0和Bx=0,其中A,B均为m*n矩阵,则下列命题中正确的是(不定 2020-06-24 …
帮我检查一下总复习1一、填空.1.在18、0.3、9.16、0、1、0.2604、0.806中整数 2020-06-27 …
902g金属钠投入到足量的重水中9.2克金属钠投入到足量的重水中、则产生的气体中含有()A.0.2 2020-07-09 …
中国石油进口比例为:(2.00分)A.0.1B.0.3C.0.5D.0.7中国石油进口比例为:(2 2020-07-29 …
怎么证明区间[0,1]不可数(反证法)假设0,1是可数的,可计其中元素为0,1={C1,C2,C3, 2020-10-31 …