员工证件照、各类电子文档名称杂乱无章,如果一个个手动去更改,费时耗力不说,还极有可能出错。加班不出活儿,升职加薪甚无望,怎么办?
跟着表姐一起学习批处理的相关操作吧,解放您复制粘贴的双手。
业务场景:
批量制作员工工作证
延伸应用:
①快速获取文件名,并进行重命名,提高文档整理效率
②批量制作准考证、HR面试通知函、财务对账函等
③批量制作指定文件名的多张相同空白表,如:各部门预算登记表、员工薪酬调整单等。
【1】获取文件名
制作工作证之前,我们首先整理员工证件照文件夹中,JPG证件照的名称杂乱无章。
面对员工档案的证件照命名原则并不规范的情况,我们需要按照员工编号-员工姓名的形式,对其进行重命名。
1首先使用VBA的方式,获取该文件夹下的所有文件名。
V
ba
批量取出文件名
Sub name_LZ() ‘表姐凌祯【EWoffice】
Dim MyName, Dic, Did, I, T, F, TT, MyFileName
On Error Resume Next
Application.ScreenUpdating = False
Set objShell = CreateObject(“Shell.Application”)
Set objFolder = objShell.BrowseForFolder(0, “选择文件夹”, 0, 0)
If Not objFolder Is Nothing Then lj = objFolder.self.Path & “”
Set objFolder = Nothing
Set objShell = Nothing
T = Timer
Set Dic = CreateObject(“Scripting.Dictionary”) ‘创建一个字典对象
Set Did = CreateObject(“Scripting.Dictionary”)
Dic.Add (lj), “”
I = 0
Do While I < Dic.Count
Ke = Dic.keys ‘开始遍历字典
MyName = Dir(Ke(I), vbDirectory) ‘查找目录
Do While MyName “”
If MyName “.” And MyName “..” Then
If (GetAttr(Ke(I) & MyName) And vbDirectory) = vbDirectory Then ‘如果是次级目录
Dic.Add (Ke(I) & MyName & “”), “” ‘就往字典中添加这个次级目录名作为一个条目
End If
End If
MyName = Dir ‘继续遍历寻找
Loop
I = I + 1
Loop
Did.Add (“文件清单”), “” ‘以查找D盘下所有EXCEL文件为例
For Each Ke In Dic.keys
MyFileName = Dir(Ke & “*.jpg”)’注意,此处更改为您需要统计的文件格式,如果为Excel,则更改为xlsx,或其他文件格式的后缀!
Do While MyFileName “”
Did.Add (Ke & MyFileName), “”
MyFileName = Dir
Loop
Next
For Each Sh In ThisWorkbook.Worksheets
If Sh.Name = “文件清单” Then
Sheets(“文件清单”).Cells.Delete
F = True
Exit For
Else
F = False
End If
Next
If Not F Then
Sheets.Add.Name = “文件清单”
End If
Sheets(“文件清单”).[a1].Resize(Did.Count, 1) = WorksheetFunction.Transpose(Did.keys)
TT = Timer – T
Application.ScreenUpdating = True
MsgBox “汇总完毕,请您查阅,谢谢!”
End Sub
使用方法:
1.打开Excelbat删除文件夹下所有文件,按键盘ALT+F11打开Excel后台,VB编辑窗口。
2.点击插入选项卡,插入一个模块,然后将上述代码,复制到右侧编辑窗口,如下图所示。
3.点击运行按钮
4.此时Excel会弹出一个对话框,让您选择文件路径。请您点击需要提取文件名的文件夹路径。
VBA代码自动运行后,可以提取出您所选择的文件夹下,所有格式为您要求的jpg/docx/xlsx格式的文件路径+名称,如下:
除了VBA的方法以外,还可以用Windows获取文件路径的方式,完成上述需求:
操作方法:
在文件夹中,选中所有文件后,按键盘shift+单击鼠标右键,选择【复制为路径】,再粘贴到Excel当中就好了。
2使用bat批处理文件,将图片进行重命名。
在Excel当中,使用函数,将原JPG的文件名,整理为员工编号-员工姓名的格式。
其中B列的公式为:
=”ren “&A1&”.jpg “&C1&”.jpg”
(请直接复制使用,注意ren后有一个空格符)
将B2:B21单元格的值复制下来,粘贴到【证件照】文件夹下的新建的一个txt文本文档中,保存关闭。
然后,将txt文本文件的后缀名,更改为bat批处理文件。
双击运行,即完成照片的批量重命名。
照片重命名后,效果如下:
【2】用邮件合并制作工作证
开始邮件合并之前,我们整理两份原文件:
①用于邮件合并的Word模板
②用于存放员工信息的Excel原文件
注意,图片存储的路径,要用\区分各级。如:
D:\lingzhen-凌祯\【表姐来了】批处理微课\证件照\EWoffice001-金三胖.jpg
【邮件合并】
①打开Word模板,点击【邮件】选项卡–【开始邮件合并】–【普通Word文档】
②点击【选择收件人】–【使用现有列表】
在弹出的对话框中,找到示例文件的Excel原文件,并选择【数据源$】表。
③点击【插入合并域】将对应的字段(如:姓名、部门、职位等),放到Word模板的对应文本位置处。
④光标停留在【照片】文本框的位置bat删除文件夹下所有文件,点击【插入】选项卡–【文档部件】–【域】。
在弹出的【域】对话框中,左侧【域名】区域,选择:includepictuer;在【域属性】文件名或URL中输入任意值,比如:表姐。(这里输入的内容只起到占位符的效果,在下一步操作者会被删除的)
插入后,【照片】位置会显示为:无法显示。这是因为图片索引的信息,还没有刷新到Word当中来。
此时,按住键盘ALT+F9,查看域代码:
选中刚刚输入的占位符【表姐】,del删除后,在插入与中,选择对应的【照片地址】字段:
⑤完成上述步骤后,按键盘【ALT+F9】关闭域编辑状态。
然后,按F9刷新图片来源,并调整图片大小至合适位置。
⑥点击【完成并合并】–【编辑单个文档】
在弹出的【合并到新文档】对话框中,默认选择【全部】,点确定。
也可以根据需要,选择部分记录,如:从100-200等。
此时Word将新建生成一个新文档,按键盘CTRL+A全选文档以后,按键盘F9刷新图片源即可。最终成果物如下:
【3】批量新建多张表
每到年初、月初的时候,很多小伙伴都要新建N多张空白表,比如:各月度、各部门人员动态情况一览表,并且对每个工作表要求显示为该部门名称。
除了手动填写的方法以外,我们使用数据透视表–【显示报表筛选页】的方式,快速生成自定义部门名称的子表。
①根据部门名称,创建一张数据透视表,将【部门名称】放在【筛选器】字段处。
②点击【数据透视表工具】–【分析】选项卡下–【选项】中–【显示报表筛选页】
在弹出的对话框中,点击【确定】。
Excel快速生成了多张以【部门名称】命名的空白工作表。
鼠标右键单击sheet表名称区域的左右三角,可以打开工作表【激活】窗口,查看本工作簿中的所有工作表,以实现快速选中。
③点击工作表页签区域,按住键盘选中各部门的工作表,使得工作簿变为【工作组】的状态。
选中数据透视表区域,点击【开始】选项卡–【编辑】–【清除】–【全部清除】,即可将表格清空。
注:在此状态下,通过选中第1行并删除行的方式,是无法删除数据透视表的。
然后将模板表中的工作表,粘贴到工作组当中,即完成了批量新建。
获取:示例原文件
公众号后台回复【批处理】三个字即可。
提高桌面生产力
我是表姐凌祯
如您有office相关的问题,欢迎与我交流
希望我微薄的积累能够启发到您
也请您帮助我们分享到朋友圈,传递给其他的小伙伴
邮箱:348902122@qq.com
———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击网站首页每天更新
站 长 微 信: aiwo51889