說道制作個案例純粹意外,我多少有點選擇恐懼癥,為了不在“選擇”上糾結(jié),就自己小玩了一下,就用了程序做了個選擇器,其實很簡單,就是有小時候玩的“點兵點將',稍微變化就成今天的案例!我一直的原則是用最少的知識,盡量做功能豐富一些,樣子盡量好看一點兒,僅此而已,先來張效果圖如下: 最終效果圖 點名器使用三個函數(shù)分別為MID,RANDBETWEEN,INDIRECT函數(shù),哦差點忘了還有Excel自帶的條件樣式;主料已經(jīng)找好,下面詳解一下主料的功能,先說MID函數(shù),結(jié)構(gòu)如下: MID函數(shù)結(jié)構(gòu)圖 MID函數(shù) 功能:在“字符串”中,從“位置”開始截取長度為“字符數(shù)”的字符串 字符串:自定義字符串如:“abcdef”,也可以是單元格引用如:A1,多單元格拼接結(jié)果如:A1&A2&A3;A1,不論什么形式,必須保證最后能轉(zhuǎn)化成字符串,否則報錯,舉個錯誤的錄入比如:A1:A10就會報錯#VALUE!; 位置:>0的數(shù)字,截取從第幾位開始,輸入幾; 字符數(shù):>=0的數(shù)字,你要截取的字符串位數(shù),為0,則一位也不截??; 舉例:=MID('ADBCD',2,3) 結(jié)果為:DBC Randbetween函數(shù)結(jié)構(gòu) RANDBETWEEN函數(shù): 功能:隨機生成兩個參數(shù)為邊界中間的數(shù)字包括兩個參數(shù); 參數(shù):數(shù)字2>=數(shù)字1,兩個參數(shù)相等則只生成“數(shù)字1”; 結(jié)果:=randbetween(2,10),隨機生成2到10的數(shù)字,包括2和10; indirect函數(shù)的結(jié)構(gòu)圖 INDIRECT函數(shù): 功能:將參數(shù)轉(zhuǎn)化成引用單元格并立即計算,返回引用單元格結(jié)果內(nèi)容 字符串:必須為字符串格式引用位置,必須為“A1”形式,如A1形式則報錯,也可以是定義名稱 邏輯值:四個值:0或false,1或true,1和true:A1引用樣式,0和false:R1C1引用樣式 詳細(xì)了解引用樣式可看: 原型:INDIRECT('a'&1)獲取A1的內(nèi)容; 所有主料已備齊開始我們的制作吧! 首先在工作表中創(chuàng)建顯示抽到人名的區(qū)域 ,我并沒有采用合并居中而是用的跨列居中( 方式,引用單元格位置為B2;人名區(qū)域為:B3:G8,知道這些,我們就可以整理出思路啦! 創(chuàng)建數(shù)據(jù)的界面 首先:B2需要隨機顯示B3:G8中的內(nèi)容,而所顯示的內(nèi)容列在:B-G之間變化,我們用字符串截取的方式來處理,創(chuàng)建字符串'BCDEFG',位置隨機(轉(zhuǎn)化成公式:randbetween(1,6)),截取字符串長度為1轉(zhuǎn)成公式為:MID('BCDEFG',randbetween(1,6),1),數(shù)字在3-8之間變化成公式為:randbetween(3,8),組成引用位置兩部分都有了,剩下的只需讀取相應(yīng)的位置的內(nèi)容,就要用到函數(shù)indirect了,我們把前面的部分組合在一起就是B2單元格的公式=indirect(mid('BCDEFG',randbetween(1,6),1)&randbetween(3,8)),主要部分完成, 其次:要實現(xiàn)選中對應(yīng)單元格顏色背景也發(fā)生變化,就要用到條件格式,當(dāng)姓名單元格和B2的內(nèi)容相等時,樣式發(fā)生變化,具體操作:選中要變化樣式的范圍:B3:G8,點條件格式->突出顯示單元格規(guī)則中等于,在其中輸入=$B$2,后在設(shè)置為中選擇一樣樣式,我選的自定義格式,調(diào)整成你想要的格式就可以啦。 條件格式設(shè)置界面 最后調(diào)試一下樣式,去掉礙眼的網(wǎng)格線,為所選區(qū)域增加邊框,調(diào)整一下顯示名字的區(qū)域的最終樣式,大功告成,然后按住f9一會,再松開,是不是就是最終的動態(tài)效果了。最后的彩蛋來了,f9是強制重新計算所有的工作薄內(nèi)容,如果你發(fā)現(xiàn)拖拽公式無法正常顯示結(jié)果,可以按f9或去選項-公式-看看“工作薄計算”是不是選擇了手動計算,改選自動計算,再拖公式就可以了!如果你選擇的是自動計算,除了f9能實現(xiàn)動態(tài)點名外,你可以選中空白單元,然后按住Delete鍵一會兒,再松開是不是跟f9效果一樣啊!那么問題來了,你知道為什么Delete鍵會跟f9功能一樣嗎?歡迎留言回答!這個點名器存在很多不完善的地方,后期我會逐漸在此基礎(chǔ)上完善并會引入記錄曠課,防止重復(fù)點名等功能! |
|