平淡
啟動Excel后在A列中輸入檢查人員的姓名,在B2單元格中輸入公式“=RANDBETWEEN(1,10)”并下拉(區(qū)間數(shù)字請根據(jù)人員的數(shù)量進行修改,比如有50個人就設置為1,5 0),該公式表示使用RANDBETWEEN函數(shù)隨機生成1-10之間的整數(shù)。由于每次生成的都是隨機數(shù)字,因此當A列中的數(shù)據(jù)以這個隨機數(shù)字作為排序的依據(jù)時,每次的排序結(jié)果都不相同(圖2)。
接下來登錄“http://dwz.win/QkX”并下載所需的VBA腳本(提取碼:x5r3),下載完后返回Excel,按下“Alt+F11”組合鍵打開VBA窗口,依次點擊“插入→模塊”,將下載到的腳本復制到該窗口。大家要根據(jù)實際情況修改代碼,比如“Fori=9To2Step-1”,表示對A9到A2單元格中的數(shù)據(jù)進行遍歷,步長是“-1”,這樣會依次從A9單元格一直循環(huán)顯示到A2單元格,最終顯示A2單元格中的數(shù)值。如果A列中的數(shù)據(jù)更多,就需要更改這里的數(shù)字。Rows(2).Delete表示刪除第二行的數(shù)值,這樣每運行一次腳本就會將該行所顯示的數(shù)值刪除,可以保證不重復顯示。如果要刪除其他行的數(shù)值,將這里的數(shù)字2改成相應的數(shù)字即可(圖3)。
而A列的隨機排序我們可以通過錄制宏的方法來實現(xiàn)。依次點擊“開發(fā)工具→錄制宏”,新建一個宏1。接著開始執(zhí)行下面的操作:選中A1:B9區(qū)域,依次點擊“數(shù)據(jù)→排序”,在彈出的對話框中,“主要關(guān)鍵字”選擇“隨機排序”,“排序依據(jù)”選擇“單元格值”,“次序”設置為“降序”,點擊“確定”后停止宏的錄制(圖4)。
現(xiàn)在測試一下宏1,可以看到由于B列為隨機數(shù)字,因此在A列中每次排序的結(jié)果都是不同的,即在A2單元格中顯示的名字是隨機的。由于默認最終顯示名字的位置是C1單元格,我們還需要將每次選中的人名復制到對應分公司的單元格中,這可以借助粘貼圖片的方法來實現(xiàn)。
復制C1單元格后定位到D2單元格,依次點擊“開始→粘貼→其他粘貼選項→鏈接的圖片”,會在D2單元格中粘貼一張圖片,顯示的內(nèi)容為C1單元格中的數(shù)值。記住該圖片的名稱,比如本例為圖片1(圖5)。
在G9:G15單元格中依次輸入分公司的名稱,同上啟動宏2的錄制,執(zhí)行下面的操作:選中圖片1并復制,接著定位到H9單元格,依次點擊“開始→粘貼→圖片”,將圖片1以“圖片”的形式粘貼到H 9單元格,最后再定位到圖片1所在的位置,完成宏2的錄制。錄制完后運行宏2,查看能否將圖片1復制到H9單元格(圖6)。默認每運行一次腳本,C1單元格都會顯示不同的人名,但是通過上述“復制→粘貼→圖片”的方法,我們可以將C1單元格每次顯示的人名復制并保存下來。
完成上述的操作后再測試一下所有的流程。先執(zhí)行宏1,檢查能否在A列實現(xiàn)隨機排序。接著執(zhí)行下載到的VBA腳本,檢查能否在C1單元格中隨機顯示A 2單元格中的人名,并同時自動刪除第二行的數(shù)據(jù)。最后執(zhí)行宏2,檢查圖片1能否成功地復制到H8單元格(因為刪除了第二行的數(shù)據(jù),因此原來的H9單元格變?yōu)镠8單元格)(圖7)。
測試完后如果沒有問題,按下“Alt+F11”組合鍵打開VBA窗口,在“Sub cfan()”下添加上宏1(用于隨機排序)、“Loop Until k >=10”下添加上宏2(用于復制圖片到對應的分公司),編輯完代碼后返回宏窗口,為該宏設置運行快捷鍵為“Ctrl +R”。
返回Excel窗口,隱藏A和B列,同時調(diào)整圖片1的大小和位置。以后只要每次按下“Ctrl+R”組合鍵,C1單元格和圖片1就會循環(huán)顯示A2:A9區(qū)域中的人名,最終定格顯示A2單元格中的內(nèi)容,接著將其復制到H9單元格。由于該腳本會自動刪除第二行的數(shù)據(jù),這樣執(zhí)行宏2時會依次將顯示隨機名字的圖片復制到H2:H8區(qū)域(圖8)。