EXCEL VBA編寫模擬器可以避免誤操作導(dǎo)致的數(shù)據(jù)刷新(用excel擬合曲線)

      網(wǎng)友投稿 1075 2022-06-28

      *實(shí)例*

      抽獎(jiǎng)編號(hào):5位

      在前文《EXCEL RAND、RANK、INDEX函數(shù)搞定年會(huì)抽獎(jiǎng)器》,筆者利用EXCEL的函數(shù)制作了簡(jiǎn)單的模擬隨機(jī)抽獎(jiǎng)器。

      該方法,具有明顯的缺陷,就是“誤操作會(huì)導(dǎo)致數(shù)據(jù)刷新”,本文使用EXCEL VBA進(jìn)行簡(jiǎn)單模擬器編寫:

      更好地避免“誤操作導(dǎo)致的數(shù)據(jù)刷新”

      準(zhǔn)確記錄已經(jīng)中獎(jiǎng)的名單

      支持10000條以內(nèi)的“抽獎(jiǎng)編號(hào)”數(shù)據(jù)添加

      缺陷:抽獎(jiǎng)編號(hào)只支持3-5位數(shù),其它不能自適應(yīng),需修改代碼

      步驟一:界面設(shè)計(jì)

      單元格B:C區(qū)域,輸入“抽獎(jiǎng)編號(hào)”數(shù)據(jù),并為其分配自增的不重復(fù)編號(hào)(1-10003)

      單元格E3:I3區(qū)域,為搖獎(jiǎng)過(guò)程展示區(qū)域,點(diǎn)擊【開(kāi)始】按鈕后,E3:I3區(qū)域會(huì)持續(xù)閃爍,點(diǎn)擊【結(jié)束】,E3:I3停下,并將搖獎(jiǎng)結(jié)果復(fù)制到L列

      單元格L列,為【結(jié)束】后保存之前的搖獎(jiǎng)結(jié)果,點(diǎn)擊【重置】按鈕,將清除E3:I3搖獎(jiǎng)區(qū)域和L列的數(shù)據(jù)

      步驟二:EXCEL VBA代碼

      ===============開(kāi)始================

      Dim rollID() As String ? ? ? ?'設(shè)定動(dòng)態(tài)抽獎(jiǎng)編號(hào)數(shù)組

      Dim isScroll As Boolean ? ?'設(shè)定控制結(jié)束的布爾值

      Sub rollReward()

      '為動(dòng)態(tài)數(shù)組確定大小

      Dim a As Integer

      a = Application.WorksheetFunction.Max(Range("B3:B10003").Value)

      '最多在B列支持10000條數(shù)據(jù)(年會(huì)抽獎(jiǎng),每次抽1人,足夠了)

      ReDim rollID(1 To a)

      '為抽獎(jiǎng)編號(hào)賦值

      Dim i As Integer

      For i = 1 To a Step 1

      rollID(i) = Cells(2 + i, 3)

      Next i

      Randomize ?'初始化隨機(jī)數(shù)生成器

      Dim j As Integer

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

      isScroll = False ?'初始化“控制結(jié)束”標(biāo)記為false

      Dim rollstr As String

      rollstr = rollID(j)

      Range("E3").Value = Mid(rollstr, 1, 1) '抽獎(jiǎng)編號(hào)第1位數(shù)組,填充在E3單元格

      Range("E3").Interior.Color = RGB(Int(Rnd() * 255), Int(Rnd() * 255), Int(Rnd() * 255)) '隨機(jī)填充顏色

      Range("F3").Value = Mid(rollstr, 2, 1) '抽獎(jiǎng)編號(hào)第2位數(shù)組,填充在F3單元格

      Range("G3").Value = Mid(rollstr, 3, 1) '抽獎(jiǎng)編號(hào)第3位數(shù)組,填充在G3單元格

      Range("G3").Interior.Color = RGB(Int(Rnd() * 255), Int(Rnd() * 255), Int(Rnd() * 255)) '隨機(jī)填充顏色

      If Len(rollstr) >= 4 Then

      Range("H3").Value = Mid(rollstr, 4, 1) '抽獎(jiǎng)編號(hào)第4位數(shù)組,填充在H3單元格

      End If

      If Len(rollstr) >= 5 Then

      Range("I3").Value = Mid(rollstr, 4, 1) '抽獎(jiǎng)編號(hào)第4位數(shù)組,填充在I3單元格

      Range("I3").Interior.Color = RGB(Int(Rnd() * 255), Int(Rnd() * 255), Int(Rnd() * 255)) '隨機(jī)填充顏色

      End If

      DoEvents '釋放程序控制權(quán)

      Dim b As Integer

      b = Range("K1").Value

      If isScroll = True Then

      b = b + 1

      Range("K1").Value = b

      Range("K" & b + 2).Value = b

      Range("L" & b + 2).Value = rollID(j)

      Exit Sub '判斷控制結(jié)束的標(biāo)記是否為true,是就跳出sub

      End If

      Call rollReward '調(diào)用程序自身,重新生成新的隨機(jī)結(jié)果

      End Sub

      Sub gameover()

      isScroll = True ?'將控制結(jié)束的標(biāo)記置為true

      End Sub

      '重置搖獎(jiǎng)區(qū)和結(jié)果展示區(qū)數(shù)據(jù)

      Sub resetGame()

      Range("k1").ClearContents

      Range("k3:K10003").ClearContents

      Range("L3:L10003").ClearContents

      用EXCEL VBA編寫模擬器可以避免誤操作導(dǎo)致的數(shù)據(jù)刷新(用excel擬合曲線)

      Range("E3:I3").Interior.Color = RGB(255, 255, 255)

      Range("E3:I3").Value = ""

      End Sub

      ===============結(jié)束================

      步驟三:測(cè)試3位、4位、3-5位抽獎(jiǎng)編號(hào)表現(xiàn)

      抽獎(jiǎng)編號(hào):3位

      抽獎(jiǎng)編號(hào):4位

      抽獎(jiǎng)編號(hào):3-5位

      *方法局限*

      只能支持3-5位抽獎(jiǎng)編號(hào)

      抽獎(jiǎng)編號(hào)必須與實(shí)際參與者一一對(duì)應(yīng),且無(wú)法一次性抽多人

      無(wú)法排除已經(jīng)中獎(jiǎng)的編號(hào)

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:點(diǎn)擊 超鏈接打開(kāi)的是IE瀏覽器,想換個(gè)360瀏覽器,已經(jīng)把360瀏覽器設(shè)置為默認(rèn)瀏覽器,可是打開(kāi)還是(點(diǎn)擊助手)
      下一篇:運(yùn)用EXCEL RAND RANK INDEX函數(shù)制作公司年會(huì)抽獎(jiǎng)器(運(yùn)用excel做某一種統(tǒng)計(jì)分析.簡(jiǎn)答題)
      相關(guān)文章
      日韩在线视精品在亚洲| 久久亚洲AV成人无码| 亚洲乱码一二三四区麻豆| 亚洲成av人影院| 国产精品亚洲片在线观看不卡 | 亚洲美免无码中文字幕在线| 亚洲AV无码第一区二区三区| 国产AV无码专区亚洲AV毛网站| 亚洲精品你懂的在线观看| 亚洲精品夜夜夜妓女网| 亚洲AV综合色区无码一区爱AV| 亚洲动漫精品无码av天堂| 久久91亚洲精品中文字幕| 久久精品亚洲精品国产色婷| 精品亚洲成a人片在线观看少妇 | 在线观看午夜亚洲一区| 亚洲中文字幕在线观看| 亚洲精品国产品国语在线| 亚洲美女又黄又爽在线观看| 国产亚洲精品a在线无码| 亚洲成AV人片在线播放无码| 亚洲人成影院在线| 亚洲精品无码久久久久久久| 亚洲理论片中文字幕电影| 精品丝袜国产自在线拍亚洲| 亚洲中文字幕久久精品无码A| 亚洲欧洲免费无码| 另类小说亚洲色图| 久久亚洲精品无码观看不卡| 亚洲人成在线播放网站| 国产AV无码专区亚洲精品| 亚洲黄色在线电影| 99热亚洲色精品国产88| 亚洲AV无码成人精品区狼人影院| 婷婷亚洲天堂影院| 成人亚洲性情网站WWW在线观看| 国产亚洲精久久久久久无码77777| 亚洲精品中文字幕乱码三区| 久久精品国产亚洲AV无码偷窥| 亚洲第一区视频在线观看| 亚洲私人无码综合久久网|