设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 1501|回复: 2
收起左侧

[原创] 【东方瑞通】VBA中的数据筛选分发

[复制链接]
发表于 2015-4-22 10:45:45 | 显示全部楼层 |阅读模式

当我们从系统中导出所有数据到Excel的一张工作表中,这时需要将数据按不同部门或不同员工进行多次筛选,将不同的筛选结果分别发给各位同事,筛选-复制筛选结果-粘贴到新工作簿,这样一个简单但却枯燥的动作,需要重复做上N次,是不是有些郁闷呢?
这时我们利用Excel VBA编写指定的代码,用户只需要单击一个按钮,不到一分钟后即可轻松将数据筛选到各个新工作簿中。

如下图所示,我们需要将这份人事数据按不同部门分发到各个新工作簿中。


                               
登录/注册后可看大图

每个新工作簿只包含一个部门的人事数据信息,并且该工作簿的文件名以部门名称命名。
首先打开总表,按快捷键Alt+F11进入VBE界面,即VBA代码存放的界面。在VBE界面中,单击“插入”菜单,选择“模块”,在模块中编辑VBA代码,此处省略一万字…

大家如果有别人编好后的代码,直接复制到这个模块中即可。


                               
登录/注册后可看大图

代码以Sub 宏名() 开头,宏名是自己命名的,只要没有特殊符号,非纯数字,不重名,总之形象命名就是了。我这里宏名以 FilterToWk 命名。
关闭VBE界面,回到工作表界面,在“插入”选项卡下,插入一张图片或形状,也可以直接用控件来作为运行代码的按钮。右击该按钮→指定宏,选择宏名为 FilterToWk 即可。
将鼠标放到部门列的任意一个单元格中,单击“开始筛选分发”按钮,此时弹出对话框,提示用户“您选中了第5列,将以此列作为条件进行筛选,确定开始吗”,用户单击“YES”后,电脑自动运行,不到一分钟后,汇总结果就全部呈现在我们面前了。

PS:此代码不仅能对部门进行筛选分发,对于其他列一样可以,只需要在单击“开始筛选分发”按钮前,将鼠标放在要进行筛选分发的列上即可。


                               
登录/注册后可看大图


                               
登录/注册后可看大图


此文出自东方瑞通彭巽言老师,转载需注明出处。



您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-5-9 01:46 , Processed in 0.071024 second(s), 12 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表