简单高效巧用Excel实现随机混排

2021-04-08 10:48平淡
电脑爱好者 2021年7期
关键词:组合键脚本单元格

平淡

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

接下来登录“http://dwz.win/QkX”并下载所需的VBA脚本(提取码:x5r3),下载完后返回Excel,按下“Alt+F11”组合键打开VBA窗口,依次点击“插入→模块”,将下载到的脚本复制到该窗口。大家要根据实际情况修改代码,比如“Fori=9To2Step-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以“图片”的形式粘贴到H 9单元格,最后再定位到图片1所在的位置,完成宏2的录制。录制完后运行宏2,查看能否将图片1复制到H9单元格(图6)。默认每运行一次脚本,C1单元格都会显示不同的人名,但是通过上述“复制→粘贴→图片”的方法,我們可以将C1单元格每次显示的人名复制并保存下来。

完成上述的操作后再测试一下所有的流程。先执行宏1,检查能否在A列实现随机排序。接着执行下载到的VBA脚本,检查能否在C1单元格中随机显示A 2单元格中的人名,并同时自动删除第二行的数据。最后执行宏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)。

猜你喜欢
组合键脚本单元格
酒驾
玩转方格
玩转方格
复制带图片的工作表也有技巧
数据库系统shell脚本应用
浅谈Excel中常见统计个数函数的用法
快乐假期
简单便捷Win8系统metro应用切换技巧