|
楼主 |
发表于 2019-12-17 11:37
|
显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
感谢 xiangbaoan 老师和excelvlookup 老师的帮助,附件如下:
关于2种随机抽取数字的请教.zip
(155.6 KB, 下载次数: 2)
代码如下:
- Sub test1()
- '每个单元格随机出现数字,相当于每个单元格都输入=RANDBETWEEN(0,9)
- '帮助者:xiangbaoan 老师
- Dim h&, w&, i&, j&
- h = [n1]
- w = [n2]
- ReDim ar%(1 To h, 1 To w)
- Randomize
- For i = 1 To h
- For j = 1 To w
- ar(i, j) = Int(10 * Rnd)
- Next
- Next
- [a1].Resize(Rows.Count, w).ClearContents
- [a1].Resize(h, w) = ar
- End Sub
复制代码
- Sub test2()
- '根据行数,抽取0到9十个不同数字,出现在10个单元格中
- '帮助者:xiangbaoan 老师
- Dim h&, n&, i&, j&, c&
- h = [n1]
- ReDim ar(1 To h, 10 - 1)
- For i = 1 To h
- Randomize
- c = 0
- Do While c < 10
- n = Int(10 * Rnd)
- ar(i, c) = n
- For j = 0 To c - 1
- If ar(i, j) = n Then Exit For
- Next
- If j = c Then c = j + 1
- Loop
- Next
- [a1].Resize(Rows.Count, 10).ClearContents
- [a1].Resize(h, 10) = ar
- End Sub
复制代码
- Sub test3()
- '根据行数和列数,抽取0到9十个不同数字
- '帮助者excelvlookup 老师
- a = Range("n1"): b = Range("n2")
- ReDim ar(1 To a, 1 To b)
- For i = 1 To a
- br = Array(, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
- Randomize
- For j = 1 To b
- x = Int(Rnd() * (10 - j)) + j
- t = br(j): br(j) = br(x): br(x) = t
- ar(i, j) = br(j)
- Next
- Next
- [a1].Resize(a, b) = ar
- End Sub
复制代码
|
|