天天看點

高逼格|Excel抽獎小工具,可直接套用(用Excel制作公司年會的抽獎系統)

`

高逼格|Excel抽獎小工具,可直接套用(用Excel制作公司年會的抽獎系統)

已踏入工作的小夥伴最期待的當然是公司年會抽獎環節,吃不吃飯都無所謂的,如果能抽到個大獎,必然是一件很開心的事情~

現在大部門公司抽獎都是用程式設計技術制作個小程式,今天我們就說說如何利用Excel去制作一個抽獎小系統。

下面中點選【開始】按鈕,螢幕上開始滾動員工姓名,點選【停止】按鈕,抽出中獎人,并将中獎人名單添加到表格中去,友善領獎,同時已中獎者将不會參與後面的抽獎環節。

高逼格|Excel抽獎小工具,可直接套用(用Excel制作公司年會的抽獎系統)

是不是很有意思呢?下面詳細說說這個小系統的制作方法~

思路

一共制作三個小控件,【開始】按鈕控制程式運作,【停止】按鈕控制程式暫停,【清除】按鈕清除已中獎者名單;

在用一個單元格展示人員名單滾動效果;

最後標明一塊區域用于存放中獎者名單。

基本布局

選中Excel中一塊區域,第一第二行合并單元格展示名稱,B4單元格字型調大用于員工姓名滾動,D4:H12區域用于存放中獎者名單,格式調整比較簡單,這裡不再贅述。

高逼格|Excel抽獎小工具,可直接套用(用Excel制作公司年會的抽獎系統)

添加控件

點選【開發工具】—【插入】,選擇第一個【按鈕】控件,插入,暫時先不指定宏,點選【取消】,将控件名字修改為【開始】,同理插入【停止】、【清除】控件,如下圖所示:

高逼格|Excel抽獎小工具,可直接套用(用Excel制作公司年會的抽獎系統)
高逼格|Excel抽獎小工具,可直接套用(用Excel制作公司年會的抽獎系統)

人員名單準備

插頁1【Sheet1】為抽獎系統界面,插頁2【人員名單清單】為員工名單存放列;

高逼格|Excel抽獎小工具,可直接套用(用Excel制作公司年會的抽獎系統)

輸入代碼

一共輸入三段代碼:

第一段:

高逼格|Excel抽獎小工具,可直接套用(用Excel制作公司年會的抽獎系統)

第二段&第三段:

高逼格|Excel抽獎小工具,可直接套用(用Excel制作公司年會的抽獎系統)

指定控件

回到插頁系統界面,依次選中控件,右鍵選擇【指定宏】,依次選擇對應的宏,自此,程式完成。

高逼格|Excel抽獎小工具,可直接套用(用Excel制作公司年會的抽獎系統)

程式運作

點選【開始】按鈕,即可進行抽獎。

完整代碼

Dim flag
Sub 開始()
c = Rnd
Dim rng As Range
Set dic = CreateObject("scripting.dictionary")
n = 0
For i = 2 To 201
If Application.WorksheetFunction.CountIf(Range("d4:h12"), _
Worksheets("人員名單清單").Cells(i, 1)) = 0 Then
n = n + 1
dic(n) = Worksheets("人員名單清單").Cells(i, 1)
End If
Next
flag = True
Do
DoEvents
If flag Then
Cells(4, 2) = dic(Int(Rnd * dic.Count + 1))
End If
Loop While flag
End Sub
Sub 停止()
flag = False
For i = 4 To 12
For j = 4 To 8
If Cells(i, j) = "" Then
Cells(i, j) = Cells(4, 2): GoTo 100
End If
Next
Next
100:
End Sub
Sub 清除()
For i = 2 To 100
c = Rnd
Next
Range("d4:h12").ClearContents
End Sub
      

  

代碼說明

代碼文法比較基礎,這裡重點說下比較重要的地方:

1、抽獎重要的一點是已抽到的員工不在參與後續環節的抽獎,是以在進行後續抽獎的時候需要剔除前面已中獎者的名單,這裡利用字典dictionary不重複性進行解決;

2、開始代碼for循環是從2到201,是因為插頁【人員名單清單】中,員工姓名分布在A列2至201行,如果有更多或者更少的員工,數字做相應更改即可;

3、Rnd函數是一個随機函數,随機傳回(0,1)之間的小數;

4、停止代碼中,再将中獎名單指派到表格中之後,利用GoTo 100,跳出兩個循環,截圖這段代碼,不用exit for 是因為 exit for 隻會跳出第一個for 循環,不會跳出第二個for循環;

5、代碼開始的語句“Dim flag”是非常有必要的,不然姓名滾動單元格會一直滾動;

6、代碼中的很多數字是根據抽獎頁面布局來确定的, 是以先布局好頁面,在進行代碼的書寫,頁面布局可靈活改變,代碼數字做相應變動即可。

用Excel制作公司年會的抽獎系統(帶頭像)

在年會中,抽獎環節是重頭戲,那你知道如何用Excel制作帶有照片的抽獎系統嗎?本期技巧妹與大家分享一下有關制作技巧。

抽獎效果:

高逼格|Excel抽獎小工具,可直接套用(用Excel制作公司年會的抽獎系統)

實作以上的效果,需要準備好資料,将相應的名字和照片錄入到Excel中,如下圖所示:

高逼格|Excel抽獎小工具,可直接套用(用Excel制作公司年會的抽獎系統)

注意:要将圖檔的屬性設定成“随單元格改變位置和大小”。

高逼格|Excel抽獎小工具,可直接套用(用Excel制作公司年會的抽獎系統)

操作步驟

第一步:設定随機數值

在空單元格中,這裡是在F1單元格中輸入公式

=INDEX($A$1:$A$8,RANDBETWEEN(1,COUNTA($A$1:$A$8)))      

公式說明:

INDEX函數用法:= INDEX(單元格區域,指定的行數,指定的列數)

RANDBETWEEN函數:表示随機生成整數,文法:=RANDBETWEEN(起始值,結束值)

COUNTA函數:計算非空單元格

高逼格|Excel抽獎小工具,可直接套用(用Excel制作公司年會的抽獎系統)

第二步:建立名稱

點選公式——定義的名稱——名稱管理器——建立,然後重命名,這裡命名為“抽獎”,在引用中輸入公式

=INDIRECT("B"&MATCH(抽獎!$F$1,抽獎!$A$1:$A$8,0))      

公式說明:

MATCH函數用法:= MATCH(查找值,查找區域,查找方式)

高逼格|Excel抽獎小工具,可直接套用(用Excel制作公司年會的抽獎系統)

第三步:插入圖檔

在表格中插入圖檔,之後在圖檔上插入文本框和任意一張圖檔,根據自己需要排版好,然後選中文本框,輸入=F1單元格,選中圖檔,在編輯框中輸入=抽獎,最後按F9即可滾動照片。

高逼格|Excel抽獎小工具,可直接套用(用Excel制作公司年會的抽獎系統)

 完成。

````