請用如下代碼
在A1:A1000輸入1000個數,B1B100即顯隨機100個數據
Sub GetRnd() m = [a1].End(4).Row '獲取A列中A1開始單元格的最大行數m arr = [a1].Resize(m) '讀取A列數據到數組arr n = 100 '指定要提取的數據個數n If n > m Then MsgBox "n>m Err!": Exit Sub Randomize '隨機種子初始化 以保證每次得到不同的隨機序列 For i = 1 To n '遍歷提取n個數據 r = Int(Rnd * (m - i + 1)) + i '從剩余數據中得到隨機位置r (注意里面剩余數計算用m 不是n) t = arr(r, 1): arr(r, 1) = arr(i, 1): arr(i, 1) = t '用臨時變量t進行隨機位置和當前位置的交換 保證得到隨機不重復亂序結果 Next [b1].Resize(n) = arr '輸出結果到工作表End Sub