|
本帖最后由 cbtaja 于 2013-11-9 15:58 编辑
用以下方法加快速度:
1、使用字典+数组,减少操作EXCEL对象。
2、与其生成随机数后再删除,不如判断后跳过
3、要快速生成不重复的随机数,需要加大随机数的生成范围,尽量避免出现重复值的循环。
4、把结果最后一次性写入表格。- Sub 艺术字22_单击()
- Dim m&, dic, i&, r&, arr, t#
- t = Timer
- Set dic = CreateObject("scripting.dictionary")
- Randomize (Timer)
- r = [d65536].End(3).Row - 1
- arr = [d2].Resize(r, 1)
- For i = 1 To r
- If arr(i, 1) <> "" Then
- m = Int(Rnd() * 1000 * r)
- Do While dic.exists(m)
- m = Int(Rnd() * 1000 * r)
- Loop
- dic(m) = ""
- arr(i, 1) = m
- End If
- Next
- Set dic = Nothing
- [E2].Resize(r , 1) = arr
- MsgBox Timer - t
- End Sub
复制代码 |
|