hoogle 发表于 2013-6-22 20:49
这是数组,temp()有两个数,一个放前半部分(5个数随机部分),一个放后半部分(3个数随机)。 - Sub maditate()
- Selection.ClearContents
- Dim i&, k&, l1&, l2&, m&, n&, rw&, cl&, r$, s$, s1$, s2$, tms#
- tms = Timer
-
- arr = Selection '获取需要生成不重复随机数的表格区域arr
- rw = UBound(arr): cl = UBound(arr, 2): m = rw * cl '计算所需生成随机数的总数m
- Selection.Resize(rw, cl) = ""
-
- l1 = 5: s1 = String(l1, "0"): l2 = 3: s2 = String(l2, "0")
-
- Set d = CreateObject("Scripting.Dictionary") '建立字典
-
- '前五位不重复随机数
- k = 0
- Do
- Randomize
- r = Right(s1 & Int(10 ^ l1 * Rnd), l1)
- If Not d.Exists(r) Then
- d(r) = ""
- k = k + 1: If k = m Then Exit Do
- End If
- Loop
-
- '后三位不重复随机数
- k = 0
- Do
- Randomize
- r = Right(s2 & Int(10 ^ l2 * Rnd), l2)
- If Not d.Exists(r) Then
- d(r) = ""
- k = k + 1: If k = m Then Exit Do
- End If
- Loop
-
- '将随机数组合成编码
- ReDim brr(rw, cl)
- p = d.keys
- For i = 0 To m - 1
- brr(i \ cl, i Mod cl) = "MN-" & p(i) & "*QQ" & p(i + m) & "-CW"
- Next
-
- '输出编码
- Selection.Resize(rw, cl) = crr
- MsgBox Format(Timer - tms, "0.000s")
-
- End Sub
复制代码 我这个为什么没有数据出来的????
|