返回列表 上一主題 發帖

如何透過VBA隨機"萬中取一"(但不能重複),抽完一萬次

感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2014-8-19 20:16 編輯

回復 4# PKKO
還有可參考一下
  1. Option Explicit
  2. Sub Ex1()
  3.     Application.ScreenUpdating = True
  4.     Dim i As Long, Msg As Integer
  5.     Randomize  ' 對亂數產生器做初始化的動作。
  6.     For i = 1 To 10000
  7.         Do
  8.             Cells(i, "a") = Int(10000 * Rnd + 1) '亂數號碼
  9.            Msg = Application.CountIf([a1:a10000], Cells(i, "a"))
  10.            DoEvents
  11.         Loop Until Msg = 1
  12.     Next
  13. End Sub
  14. '******************************
  15. Sub Ex()
  16.     Dim d As Object, y As Integer, A
  17.     Set d = CreateObject("scripting.dictionary")
  18.     Randomize  ' 對亂數產生器做初始化的動作。
  19.     Do
  20.         y = Int(10000 * Rnd + 1)
  21.         d(y) = y
  22.     Loop Until d.Count = 10000
  23.     Range("A1").Resize(10000) = Application.Transpose(d.ITEMS)
  24. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 6# stillfish00
  1. r = Int(Rnd * UBound(ar) - i) + i
複製代碼
r有機率為0, tmp = ar(r, 1)會出錯
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 甘願做、歡喜受。
返回列表 上一主題