Board logo

標題: 請問EXCEL VBA [打印本頁]

作者: tony19910920    時間: 2015-7-13 17:19     標題: 請問EXCEL VBA

請問一下如何利用VBA指定一個範圍跑出亂數表,謝謝。
作者: rouber590324    時間: 2015-7-14 11:05

如下引用前輩作品

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




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)