【求助】EXCEL 亂數





Peter H.
2002-03-04, 02:25 PM
請教各位
有20個人進行抽籤,決定出場順序.其中有幾個人的籤號是固定的.
例如2,5,12這三個號碼是給固定的人,其他的人則隨機亂數抽籤.
請問該如何做




leonchou
2002-03-04, 08:42 PM
這可引用我之前答另一個有關「亂數不重覆」的問題.

先在A1:A20填入姓名或代號, 在B欄適當的儲存格中
填入 2,5,12, 並將B1:B20命名為「範圍」.
然後執行這個巨集 --

Sub 亂數抽籤()
For Each c In [範圍]
If c = "" Then
Do
num = Int((20 * Rnd + 1)) ' 產生 1 到 20 之間的亂數值。
If [範圍].Find(num, lookat:=xlWhole) Is Nothing Then Exit Do
Loop: c.Value = num
End If
Next
End Sub

這個原理也很單純: 是先產生亂數存到一變數中, 與範圍內
的數字比對,若沒有重覆的才寫入儲存格中。

Oyazi
2002-03-04, 09:37 PM
我今天下午看到時
也著手寫這個程式
但是我是用比較笨的方法
利用比對的方式
還在修改時
Leon兄就已經把程式放上來了
花了些時間看Leon兄的程式
有一個感想

哪裡可以找到這些VBA裡的物件呀
在EXCEL裡VBA的物件、方法有相當的多
雖然在寫程式前的想法是相同的
就是先產生亂數,填進儲存格前比對已填入的儲存格,若沒有就填入
但是有了這些物件、方法的協助
在程式的撰寫上更加的便捷
真是令人折服

像我們這種半桶水的
您建議去哪裡找這些物件及方法呢?

leonchou
2002-03-05, 12:41 PM
我的方法只有一個: VBA on-line help.
從一無所知到融會貫通的步驟 --
搜尋關鍵字 → 查看說明 → 徹底瞭解 → 靈活運用
多次經驗後, 一些基本的東西自然會記住;
那些記不住的, 只要知道如何查詢Help即可...

當然, 需安裝VBA說明 -- 這是一定要的啦~ ^^