大家平常常常会用到随机混排,譬如考试时将不同班级的学生混排、随机抽取安检职员到下面的分公司检查安全工作、秋游时随机组成小组、随机抽奖等。手工操作不只冗杂,而且容易出错,其实对于类似的随机混排,借用Excel 2019就能高效达成。下面以随机抽取安检职员到分公司检查为例进行说明(图1)。

启动Excel后在A列中输入检查职员的名字,在B2单元格中输入公式=RANDBETWEEN(1,10)并下拉(区间数字请依据职员的数目进行修改,譬如有50个人就设置为1,50),该公式表示用RANDBETWEEN函数随机生成1-10之间的整数。因为每次生成的都是随机数字,因此当A列中的数据以这个随机数字作为排序的依据时,每次的排序结果都不相同(图2)。

下面登录http://dwz.win/QkX并下载所需的VBA脚本(提取码: x5r3),下载完后返回Excel,按下Alt+F11组合键打开VBA窗口,依次点击插入模块,将下载到的脚本复制到该窗口。大伙要依据实质状况修改代码,譬如For i = 9 To 2 Step -1,表示对A9到A2单元格中的数据进行遍历,步长是-1,如此会依次从A9单元格一直循环显示到A2单元格,最后显示A2单元格中的数值。假如A列中的数据更多,就需要更改这里的数字。Rows(2).Delete表示删除第二行的数值,如此每运行一次脚本就会将该行所显示的数值删除,可以保证不重复显示。假如要删除其他行的数值,将这里的数字2改成相应的数字即可(图3)。

而A列的随机排序大家可以通过录制宏的办法来达成。依次点击开发工具录制宏,新建一个宏1。接着开始实行下面的操作:选中A1:B9地区,依次点击数据排序,在弹出的对话框中,主要关键词选择随机排序,排序依据选择单元格值,次序设置为降序,点击确定后停止宏的录制(图4)。

目前测试一下宏1,可以看到因为B列为随机数字,因此在A列中每次排序的结果都是不一样的,即在A2单元格中显示的名字是随机的。因为默认最后显示名字的地方是C1单元格,大家还需要将每次选中的人名复制到对应分企业的单元格中,这可以借用粘贴图片的办法来达成。
复制C1单元格后定位到D2单元格,依次点击开始粘贴其他粘贴选项链接的图片,会在D2单元格中粘贴一张图片,显示的内容为C1单元格中的数值。记住该图片的名字,譬如本例为图片1(图5)。

在G9:G15单元格中依次输入分企业的名字,同上启动宏2的录制,实行下面的操作:选中图片1并复制,接着定位到H9单元格,依次点击开始粘贴图片,将图片1以图片的形式粘贴到H9单元格,最后再定位到图片1所在的地方,完成宏2的录制。录制完后运行宏2,查询能否将图片1复制到H9单元格(图6)。默认每运行一次脚本,C1单元格都会显示不一样的人名,但通过上述复制粘贴图片的办法,大家可以将C1单元格每次显示的人名复制并保存下来。

完成上述的操作后再测试一下所有些步骤。先实行宏1,检查能否在A列达成随机排序。接着实行下载到的VBA脚本,检查能否在C1单元格中随机显示A2单元格中的人名,并同时自动删除第二行的数据。最后实行宏2,检查图片1能否成功地复制到H8单元格(由于删除去第二行的数据,因此原来的H9单元格变为H8单元格)(图7)。

测试完后假如没问题,按下Alt+F11组合键打开VBA窗口,在Sub cfan()下添加上宏1(用于随机排序)、Loop Until k = 10下添加上宏2(用于复制图片到对应的分公司),编辑完代码后返回宏窗口,为该宏设置运行快捷键为Ctrl+R。
返回Excel窗口,隐藏A和B列,同时调整图片1的大小和地方。将来只须每次按下Ctrl+R组合键,C1单元格和图片1就会循环显示A2:A9地区中的人名,最后定格显示A2单元格中的内容,接着将它复制到H9单元格。因为该脚本会自动删除第二行的数据,如此实行宏2时会依次将显示随机名字的图片复制到H2:H8地区(图8)。






