|
发表于 2016-4-8 16:55
|
显示全部楼层
本楼为最佳答案
用数组uparr,lowarr来控制每行随机数的上下限,数组写多长,就可以弄多少行。
另外刚才的代码测试了一下2 to 100,没有任何问题。- Sub 随机()
- [b2:e100] = ""
- uparr = Array(5, 10, 15, 20, 25, 30, 35, 40)
- lowarr = Array(1, 6, 11, 16, 21, 26, 31, 36)
- For h = 0 To UBound(uparr) '2--9行
- gs = Int(4 * Rnd) '每行的随机个数0--3
- If gs > 0 Then
- up = uparr(h): low = lowarr(h) '随机数大小范围
- For j = 1 To gs
- wz = Int((Rnd * 4) + 1) '随机数出现的位置(列数1--4)
- If Cells(h + 2, wz + 1) <> "" Then j = j - 1 Else Cells(h + 2, wz + 1) = Int(Rnd * (up - low + 1) + low) '如果该位置已有数据,重新生成
- Next
- End If
- Next
- End Sub
复制代码 |
|