我的朋友是公司福委,最近為了春酒抽獎活動很傷腦筋,所以我寫了一個模擬大樂透的開獎遊戲,讓電腦自動產生開獎獎號,這下子他可以在公司活動裡大顯身手了…

原先的工作表內容,成這個樣子:

我們來看怎麼完成它…

vba1

【操作步驟】

1.先到Excel中的”檔案”功能,開啟”開發人員”的功能選單

檔案>選項>自訂功能區>將開發人員的選項勾選起來

excel options

 2.新增一個模組來放要執行的巨集程式內容

vba project

 

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頁,新增巨集程式執行按鈕

excel developer

並將此按鈕指定為剛寫好的巨集,之後再修改按鈕的名稱

excel Macro

最後將巨集按鈕名稱改為”大樂透開獎”,就大功告成了

5.最後的完成畫面如下:

excel lottery

 

6.要執行此巨集,請按下巨集按鈕

1秒電腦就能開出獎號,畫面如下:

excel win the lottery

C欄是輔助欄位,用以確認獎號不會重複,之後再設定為白字隱藏起來即可(這裡為方便學習,故先保留)!

 

 

VBA真的很好玩

工作、生活、玩樂都用得到,而且程式碼短短的,效果卻很強大!先祝我春酒抽獎好運吧!

 

 

 

延伸文章

Excel 快速分頁

樞紐分析表遇到"零"怎麼顯示

人資(HR)簡單用Excel計算遲到小時數

資料差異-VBA

快速Excel資料表內容比對-條件式格式設定

不用SUM,自動加總快捷鍵Alt鍵+『=』讓你一秒打完收工...

 

 

延伸課程:

Excel 就是要你早下班

excel banner 307x150

 

 

 

jackie

作者:Excel探險家 Jackie

以學習和分享為樂,熱愛在無窮無盡的Excel裡探索Excel的無限可能!

目標用熱情和數據工具改善生活,讓Excel成為你的專業招牌!

comments

登入

會員消息

最新消息 (站長有話跟你說)

線上直播專區

■追蹤PM編『互動圖文』讓你無痛學習

■註冊為新會員可以獲得專案點數10點

■不要用手機下載範本!

■記得每天登入有一點,

■怎麼註冊?怎麼輸入點數序號?

■忘記密碼嗎?快點來信

■找文章請善用『搜尋』功能

■點我闖關搶點數~

■點我去範本軍火庫