亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

最近有粉絲在后臺向我提了一個工作中的小需求,具體如下:

■ 因?yàn)楣疽M織一個知識競賽,其中有一個游戲環(huán)節(jié),需要從一組名單中隨機(jī)選出指定數(shù)量的人員參加游戲,并且需要在大屏中滾動名單以增強(qiáng)游戲緊張感。當(dāng)然最重要的是最終被選中的名單中不能有重復(fù)名單出現(xiàn)。她希望能通過Excel來實(shí)現(xiàn)這個需求。

需求分析:其實(shí)這個需求與抽獎非常類似,我們可以通過Excel的VBA宏功能來編寫一個小工具來實(shí)現(xiàn)這個需求,說干就干,以下就是最終實(shí)現(xiàn)的成品效果:

EXCEL中通過VBA宏編寫一個簡易抽獎小工具

抽獎小工具演示

功能說明:

第1步、名單在sheet2《名單維護(hù)》工作表的A列中輸入

第2步、設(shè)置抽獎人數(shù)

第3步、點(diǎn)擊開始按鈕,名單開始滾動

第4步、點(diǎn)擊停止按鈕,出現(xiàn)獲獎人員名單


制作步驟如下:

第一步:制作表格

  • 建立兩個工作表,分別為《抽獎頁面》和《名單維護(hù)》頁面。將待抽獎名單放在《名單維護(hù)》頁的A列,其中A1單元格為標(biāo)題
EXCEL中通過VBA宏編寫一個簡易抽獎小工具

 

第二步:編寫代碼

  • 點(diǎn)擊開發(fā)工具-Visual Basic, 或按下快捷鍵 ALT + F11 啟動 Visual Basic for Applications 窗口
  • 在“插入” 菜單上,單擊“模塊”
  • 在出現(xiàn)的模塊1代碼窗口中,復(fù)制并粘貼以下代碼:

#If VBA7 Then

Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr)

#Else

Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long)

#End If

 

Dim mark As Boolean

 

Sub 立即開始()

mark = True

Do While mark

DoEvents

Sleep 100

抽獎

Loop

End Sub

 

Sub 停止抽獎()

mark = False

End Sub

 

Sub 抽獎()

Dim M&, N&, i&, j&, arr

Dim d As Object

Set d = CreateObject("scripting.dictionary")

arr = Sheet2.Range("A2:A" & Sheet2.Range("A65536").End(xlUp).Row)

Range("B4:B65536").ClearContents

M = Range("D4")

N = UBound(arr)

If N < M Then MsgBox "人數(shù)超出" & N: Exit Sub

Do While i < M

j = Int(Rnd() * N + 1)

If Not d.exists(j) Then

i = i + 1

d(j) = arr(j, 1)

End If

Loop

Range("B4").Resize(d.Count, 1) = Application.Transpose(d.items)

End Sub

EXCEL中通過VBA宏編寫一個簡易抽獎小工具

寫入代碼

第三步:插入命令按鈕

  • 通過開發(fā)工具——插入——Active控件,插入一個命令按鈕
  • 雙擊這個命令按鈕,輸入過程名“立即開始”,并將這個按鈕的caption屬性改為“開始”
  • 重復(fù)以上步驟再插入一個命令按鍵,輸入過程名“停止抽獎”,并將這個按鈕的caption屬性改為“停止”
EXCEL中通過VBA宏編寫一個簡易抽獎小工具

插入命令按鈕

第四步:名單演示美化

  • 利用條件格式設(shè)置名單的填充色和字體顏色
  • 利用公式確定要設(shè)置格式的單元格:=B1<>""
EXCEL中通過VBA宏編寫一個簡易抽獎小工具

設(shè)置格式

總結(jié):

這個小工具的核心是:利用了字典+數(shù)組實(shí)現(xiàn)了名單的隨機(jī)不重復(fù)抽取。

如果你也有類似的需求,可以關(guān)注本頭條號:千萬別學(xué)Excel,并私信回復(fù):小工具 即可獲取本教程所用課件。

圖文教程創(chuàng)作不易,請點(diǎn)贊、關(guān)注并轉(zhuǎn)發(fā)給更多有需求的小伙伴們吧!

送人玫瑰,手有余香!

分享到:
標(biāo)簽:VBA
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定