返回列表 上一主題 發帖

請問EXCEL VBA

請問EXCEL VBA

請問一下如何利用VBA指定一個範圍跑出亂數表,謝謝。

如下引用前輩作品

Sub 亂數不重複()

Const rnd_start = 11 '亂數啟始值
Const rnd_end = 20 '亂數結束值
Const cell_start = 1 '要產生亂數的儲存格啟始列
Const cell_end = 5 '要產生亂數的儲存格結束列
Const Mycol = "A" '要產生亂數的儲存格欄

Dim Buf_rnd As Long '用來暫時存放亂數值,等比對沒有重複後才存入儲存格
Dim i As Long
Dim j As Long

If rnd_end - rnd_start < cell_end - cell_start Then
MsgBox "產生不重複的亂數區間不可以比要產生亂數的儲存格的數值還要少。"
Exit Sub
End If

'產生亂數
For i = cell_start To cell_end
1 Buf_rnd = Int(Rnd() * (rnd_end - rnd_start + 1)) + rnd_start
'如果不是第1個儲存格就要往前比對。
If i > cell_start Then
For j = cell_start To i - 1
'如果重複了就跳到 1 重新產生亂數。
If Buf_rnd = Range(Mycol & j).Value Then GoTo 1
Next j
End If
Range(Mycol & i).Value = Buf_rnd
Next i

End Sub
羅

TOP

        靜思自在 : 有多少力量就做多少事,不要心存等待,等待才會落空。
返回列表 上一主題