|
本帖最后由 laoau138 于 2017-4-29 22:37 编辑
用VBA随机部姓名问题
随机值排序比较麻烦,以下代码为未排序的。
必需的话在代码最后加入一句工作表排序就行了。 - Sub aaa()
- Dim arr, brr, crr, i&, j&, d As Object, c, n&, r&
- Set d = CreateObject("scripting.dictionary")
- arr = Range("a2:d" & [a65536].End(3).Row)
- For i = 1 To UBound(arr)
- d(arr(i, 2) & "," & arr(i, 4)) = d(arr(i, 2) & "," & arr(i, 4)) & "," & i
- Next i
- ReDim crr(1 To d.Count, 1 To 4)
- Randomize
- For Each c In d.keys
- brr = Split(d(c), ",")
- r = r + 1
- n = Int(UBound(brr) * Rnd + 1)
- For j = 1 To 4
- crr(r, j) = arr(brr(n), j)
- Next j
- Next c
- [f2].Resize(r, 4) = crr
- End Sub
复制代码
|
|