|
发表于 2012-8-21 23:41
|
显示全部楼层
本楼为最佳答案
Sub test()
Dim arr, brr, crr
Dim i As Long, j As Long, k As Long
Dim x, y, z, m, n, temp
x = 49
y = 163
z = "7,12"
m = Val(Split(z, ",")(0))
n = Val(Split(z, ",")(1))
ReDim brr(1 To x - 2)
For i = 1 To x
If i <> m And i <> n Then
j = j + 1
brr(j) = i
End If
Next
For n = 2 To Worksheets.Count '外面套个循环
ReDim arr(1 To x - 2, 1 To y)
For j = 1 To y
crr = brr
For i = 1 To x - 2
Randomize
k = (Rnd() * (x - 2 - i) + 1) \ 1
arr(i, j) = crr(k)
temp = crr(k)
crr(k) = crr(x - 2 - i + 1)
crr(x - i - 1) = temp
Next
Next
With Sheets(n)
.Cells.Clear
.Range("a1").Resize(x - 2, y) = arr
End With
Next
End Sub
这样再试一下。
|
评分
-
查看全部评分
|