excel宏的小问题

来源:百度知道 编辑:UC知道 时间:2024/06/18 09:53:11
有210个数,我想随机取出120个。

实现这个目的。

首先,保证210个数据在sheet1工作表的A1:a210。然后按照下面的步骤

第一步、摁下ALT+F11,进入VBA编辑器。
第二步、双击工程资源管理器里面的sheet1,在右侧的代码区粘贴下面的代码。

Function rndstr(istart, iend, isum)
Dim i, j, vntarray()
ReDim vntarray(iend - istart)
j = istart
For i = 0 To iend - istart
vntarray(i) = Range("a" & j)
j = j + 1
Next

Dim vntarray2(), temp, x, y
ReDim vntarray2(isum - 1)
y = iend - istart + 1
x = 0
temp = vntarray
Do While x < isum
Dim a
Randomize
vntarray2(x) = temp(Int(Rnd * y))
a = " " & vntarray2(x) & " "
temp = Split(Trim(Replace(Chr(32) & Join(temp) & Chr(32), a, " ")))
x = x + 1
y = y - 1
Loop
rndstr = Join(vntarray2)
End Function

Sub 随机()
For j = 1 To 5
suiji = Split(rndstr(1, 210, 120), " ")
For i = 1 To UBound(suiji) + 1
Range(Chr(66 + j) & i) = suiji(i - 1)
Next
Next
End Su