我的朋友是公司福委,最近為了春酒抽獎活動很傷腦筋,所以我寫了一個模擬大樂透的開獎遊戲,讓電腦自動產生開獎獎號,這下子他可以在公司活動裡大顯身手了…
原先的工作表內容,成這個樣子:
我們來看怎麼完成它…
【操作步驟】
1.先到Excel中的”檔案”功能,開啟”開發人員”的功能選單
檔案>選項>自訂功能區>將開發人員的選項勾選起來
2.新增一個模組來放要執行的巨集程式內容
3.在模組中,鍵入以下程式碼(請直接複製貼上)
Sub 大樂透開獎()
'清除舊資料
Range("B1:C7") = ""
'不知道要做幾次的迴圈,要用do loop
i = 1 '設起始值
Do While i <= 7 '跑完7次就停
Cells(i, "B") = Int(VBA.Rnd() * 49) + 1 '產生1~49的亂數
'在輔助欄C確認值出現的次數
Cells(i, "C") = Application.WorksheetFunction.CountIfs(Range("B1:B" & i), Cells(i, "B"))
If Cells(i, "C") = 1 Then '如果確定計數只出現1次, 起始值才可以加1(跑下一個值),不然就要一直跑
i = i + 1
End If
Loop
MsgBox "開獎完成"
End Sub
上述程式會逐一產生亂數,並確認沒有重覆獎號後向下開獎。
4.至工作表第1頁,新增巨集程式執行按鈕
並將此按鈕指定為剛寫好的巨集,之後再修改按鈕的名稱
最後將巨集按鈕名稱改為”大樂透開獎”,就大功告成了
5.最後的完成畫面如下:
6.要執行此巨集,請按下巨集按鈕
1秒電腦就能開出獎號,畫面如下:
C欄是輔助欄位,用以確認獎號不會重複,之後再設定為白字隱藏起來即可(這裡為方便學習,故先保留)!
VBA真的很好玩
工作、生活、玩樂都用得到,而且程式碼短短的,效果卻很強大!先祝我春酒抽獎好運吧!
延伸文章
不用SUM,自動加總快捷鍵Alt鍵+『=』讓你一秒打完收工...
延伸課程:
作者:Excel探險家 Jackie
以學習和分享為樂,熱愛在無窮無盡的Excel裡探索Excel的無限可能!
目標用熱情和數據工具改善生活,讓Excel成為你的專業招牌!