上周HR小刘接到任务:给新入职50人做工牌。50张照片逐张插入、逐张调大小、逐张对齐位置——光照片就花了40分钟;50次复制模板、50次填姓名岗位、50次排版校对——整个下午没干别的。隔壁行政老张更惨:200人换版工牌,手动做到凌晨2点,第二天发现3张照片跑偏、5张部门填错——又返工1小时。
如果这些能一键批量搞定呢?Excel确实可以——建好员工信息表,排版好工牌模板,一个宏30秒生成全员工牌:照片自动嵌入、信息自动填入、排版自动统一。不用一张一张做,全部一键出。
今天教4招:①数据验证规范建员工信息表 ②Excel排版设计工牌模板 ③VBA宏一键批量生成 ④页面设置批量打印输出。4招串联,从建表到出牌一条龙。
招式一:数据验证规范建员工信息表
使用场景:全员工牌的信息源头——姓名、部门、岗位、工号、照片路径,一列都不能乱。数据验证下拉菜单防误输,照片路径列用公式自动拼接——你只管填4列,路径自动生成。
操作步骤:
1. 新建Sheet命名"员工信息",建5列:A工号、B姓名、C部门、D岗位、E照片路径
2. C列数据验证→序列→来源:行政部,人事部,财务部,销售部,技术部
3. D列数据验证→序列→来源:经理,主管,专员,助理
4. E2输入公式:="D:\照片\"&A2&"_"&B2&".jpg",双击填充柄下拉
5. 照片文件夹命名规范:每个照片文件名=工号_姓名.jpg(如001_张三.jpg)
关键公式:
```
E2 = "D:\照片\"&A2&"_"&B2&".jpg"
```
用&拼接照片路径,工号+姓名=唯一文件名。文件夹命名统一了,Excel替你找照片。照片文件夹路径改成你实际的位置即可(如="E:\工牌照片\"&...),公式结构不变。兼容性:所有Excel版本支持&拼接和数据验证下拉菜单。
踩坑提醒:⚠️ 照片文件名必须和公式拼接结果一字不差——"001_张三.jpg"不能写成"01_张三.jpg",差一个字照片就找不到(083期命名区域经验:"差一个字整栋楼塌")。
招式二:Excel排版设计工牌模板
使用场景:工牌的"外观设计"全在Excel里完成——单元格行高列宽=工牌尺寸,字号底纹=版式风格,预留照片位置=图片插入锚点。模板设计一次,以后只需运行宏。
操作步骤:
1. 新建Sheet命名"工牌模板"
2. 合并A1:D1输入"部门名"——字号14粗体,浅蓝底 #D6E4F0
3. 合并A2:B4留照片区——黄色底标注"←照片位"
4. C2输入"姓名"——字号16粗体
5. C3输入"岗位"——字号12常规
6. C4输入"工号"——字号10,浅灰 #A6A6A6
7. 合并A5:D5输入公司名——字号10居中,深蓝底 #4472C4白字
8. 调行高:选中第1行→右键行高→输入25;第2-4行各40;第5行20
9. 调列宽:选中A/B列→右键列宽→输入8;选中C/D列→右键列宽→输入12
模板布局示意:
```
A B C D
R1: [ 部门名称 ] ← 合并A1:D1,浅蓝底14号粗体
R2: [ 照片区 ] [ 姓名 ] ← 合并A2:B4=照片位(黄底),C2=姓名16号粗体
R3: [ 照片区 ] [ 岗位 ] ← C3=岗位12号常规
R4: [ 照片区 ] [ 工号 ] ← C4=工号10号浅灰
R5: [ 公司名 ] ← 合并A5:D5,深蓝底白字10号
```
单元格就是工牌的"画布"——行高列宽调到位,版式不跑偏。模板中的"部门名/姓名/岗位/工号"是预留文字,宏运行后会自动替换成真实数据——宏按单元格地址(A1/C2/C3/C4)写入,不是搜索替换文字。
兼容性:所有Excel版本支持行高列宽调整和单元格合并。
踩坑提醒:⚠️ Excel行高单位是"磅"不是"毫米"——1磅≈0.35mm。85mm工牌高度≈240磅,不要直接输85以为就是85mm!先调大致比例,再靠页面缩放1页×1页精修(061期经验)。
招式三:VBA宏一键批量生成全员工牌
使用场景:50人、100人、200人……手动复制模板+插入照片+填信息,重复N次。宏是"录像机"(058期)——录一次,以后一键重播,30秒生成全员工牌。
操作步骤:
1. 开发工具→Visual Basic→插入→模块
2. 复制粘贴以下VBA代码(直接使用,不需手动录制)
3. 代码逻辑:先清除旧工牌 → 循环员工信息表每一行 → 复制模板Sheet → 填入姓名/部门/岗位/工号 → 嵌入对应照片 → 重命名Sheet为姓名_工号
4. 返回Excel→开发工具→宏→选中"生成工牌"→运行
5. 30秒后,N张工牌Sheet全部生成完毕
VBA代码(完整可用,直接复制粘贴):
```vba
Sub 生成工牌()
Dim i As Long
Dim lastRow As Long
Dim wsData As Worksheet
Dim wsTemplate As Worksheet
Dim wsNew As Worksheet
Dim photoPath As String
Dim sheetName As String
Dim ws As Worksheet
'设置数据源和模板
Set wsData = Sheets("员工信息")
Set wsTemplate = Sheets("工牌模板")
lastRow = wsData.Cells(wsData.Rows.Count, 1).End(xlUp).Row
'先清除上次生成的工牌Sheet(只保留员工信息和工牌模板)
Application.DisplayAlerts = False
For Each ws In Sheets
If ws.Name <> "员工信息" And ws.Name <> "工牌模板" Then
ws.Delete
End If
Next ws
Application.DisplayAlerts = True
Application.ScreenUpdating = False '关闭屏幕刷新加速
For i = 2 To lastRow
'复制模板到新Sheet
wsTemplate.Copy After:=Sheets(Sheets.Count)
Set wsNew = ActiveSheet
'用姓名_工号命名Sheet(同名员工靠工号区分)
sheetName = wsData.Cells(i, 2).Value & "_" & wsData.Cells(i, 1).Value
If Len(sheetName) > 28 Then sheetName = Left(sheetName, 28)
On Error Resume Next
wsNew.Name = sheetName
On Error GoTo 0
'填入员工信息(按单元格地址写入,替换模板预留文字)
wsNew.Range("A1").Value = wsData.Cells(i, 3).Value '部门→A1(合并区)
wsNew.Range("C2").Value = wsData.Cells(i, 2).Value '姓名→C2
wsNew.Range("C3").Value = wsData.Cells(i, 4).Value '岗位→C3
wsNew.Range("C4").Value = "No." & wsData.Cells(i, 1).Value '工号→C4
'嵌入照片到照片区(AddPicture嵌入模式,发给同事也正常显示)
photoPath = wsData.Cells(i, 5).Value
If Dir(photoPath) <> "" Then
wsNew.Shapes.AddPicture _
Filename:=photoPath, _
LinkToFile:=msoFalse, _
SaveWithDocument:=msoTrue, _
Left:=wsNew.Range("A2").Left + 5, _
Top:=wsNew.Range("A2").Top + 5, _
Width:=70, _
Height:=85
End If
Next i
Application.ScreenUpdating = True '恢复屏幕刷新
MsgBox "全员工牌已生成!共" & lastRow - 1 & "张"
End Sub
```
代码已经写好,你只需复制粘贴→运行→30秒出结果。不会VBA没关系,058期教过宏基础,这里直接用现成代码。
关键说明:
• 先清除旧Sheet:第二次运行宏前会自动删除上次生成的工牌Sheet(只保留"员工信息"和"工牌模板"),不会越跑越多
• Shapes.AddPicture 嵌入照片(LinkToFile:=msoFalse),照片存进Excel不依赖外部文件,发给同事也能正常显示
• Dir(photoPath) 检查文件是否存在,找不到照片则跳过不报错
• 宏按单元格地址写入数据(A1/C2/C3/C4),不是搜索替换"姓名""岗位"这些文字——所以模板里的预留文字可以随便写,宏会替换成真实数据
兼容性:Excel 2010及以上支持VBA和Shapes.AddPicture。WPS个人版不支持VBA(需专业版或企业版)。
踩坑提醒:
⚠️ 有宏必须存.xlsm——Ctrl+S默认xlsx丢宏(058/078期踩坑),必须另存为.xlsm格式。口诀:"有宏存xlsm,没宏存xlsx"。
⚠️ Shapes.AddPicture vs Pictures.Insert:前者嵌入照片(推荐),后者链接照片(源文件移动就断裂)。一定要用AddPicture!口诀:"AddPicture嵌入才靠谱,Insert链接会断裂"。
招式四:页面设置+批量打印输出
使用场景:工牌生成了,打印才是终点。页面缩放1页×1页+打印区域+窄边距,确保每张工牌打印不偏不缺。
操作步骤:
1. 选中一张工牌Sheet→页面布局→纸张大小→选最接近的尺寸(或自定义85mm×55mm)
2. 页面布局→边距→窄(上下左右各0.5cm,最大化利用纸张)
3. 页面布局→缩放→宽度1页×高度1页(078期经验:"1页×1页是Excel给你的尺")
4. 页面布局→打印区域→设置打印区域(选中A1:D5工牌区域)
5. Ctrl+P打印预览→确认工牌完整→打印
批量打印技巧:
• 逐张打印:选中所有工牌Sheet(按住Ctrl逐个点击)→Ctrl+P→打印整个工作簿→每张工牌一页
• A4纸排多张:不想用自定义小纸?在A4纸上排2-4张工牌——把模板宽度缩小为1/2或1/4页面,一页排多张→节省纸张更实用
1页×1页是Excel给你的尺(078期)——工牌尺寸对了,打印才不跑偏。
兼容性:所有Excel版本支持页面设置。部分打印机不支持85mm×55mm自定义纸张,需在打印机属性中确认。
踩坑提醒:⚠️ 打印机可打印区域比纸张小——工牌尺寸刚好卡在边界会缺边(061期踩坑)。解决方案:模板内容比实际尺寸小3-5mm留安全边距。
进阶联动:4招串联"建表→设计→生成→打印"完整流程
4招不是独立招式,是一条龙:
建员工信息表(招一)→ 排版工牌模板(招二)→ 宏一键批量生成(招三)→ 打印输出(招四)
实操5步:
1. 照片文件夹放D:\照片\(路径改成你自己的),文件名=工号_姓名.jpg(招一前置条件)
2. 员工信息表填5列,E列公式自动拼路径(招一)——路径改成你实际文件夹位置
3. 工牌模板Sheet排版到位(招二)——预留文字随便写,宏会替换成真实数据
4. 运行宏"生成工牌"(招三)——自动清除旧工牌+30秒生成新工牌
5. 选中全部工牌Sheet→Ctrl+P→批量打印(招四)
从录入到出牌,5步搞定。下次新入职只需在信息表加一行,再运行一次宏——工牌自动生成,旧工牌自动清除,永远只保留最新版。
高频场景
场景1:HR新入职员工批量制作工牌
新入职20人→员工信息表加20行→运行宏→20张工牌30秒生成→批量打印→当天领牌上岗。下次再有新入职,加行+运行宏即可,模板不用改。
场景2:公司统一换版工牌(全员)
200人全换版→员工信息表不变→只改模板Sheet版式(换底色、换LOGO、换字号)→运行宏→200张新版工牌一键生成→旧版工牌自动清除→批量打印→半天换完全公司。改模板改的是"一个Sheet",受益的是"200个人"——这才是批量生成的核心价值。
场景3:临时访客/实习生临时证件
实习生3人→信息表加3行→模板加"临时"标签(A1部门行前加"临时-"字样)→运行宏→3张临时证秒出→打印→即领即用。做完删掉临时行+再运行宏恢复正式版——临时证也能批量,这才是Excel的灵活。
避坑指南
坑1:照片文件名差一个字→照片插入失败
公式="D:\照片\"&A2&"_"&B2&".jpg"拼接结果必须和文件名一字不差(083期命名区域经验),差一个字符=Dir(photoPath)=""=照片不插入。口诀:"差一个字,照片找不到——和命名区域一样,一字不差才通"。
坑2:Excel行高列宽单位不是毫米
行高单位"磅"(1磅≈0.35mm),列宽单位"字符宽度"(右键列宽输入的数字)。85mm高度≠输入85,55mm宽度≠输入55。正确做法:先调大致比例→页面缩放1页×1页精修→打印预览确认。
坑3:有宏必须存.xlsm,存xlsx丢宏
Ctrl+S默认xlsx丢宏(058/078期踩坑经验),工牌工作簿有宏必须另存为.xlsm。口诀:"有宏存xlsm,没宏存xlsx"。
坑4:Pictures.Insert链接照片→源文件移动就断裂
Pictures.Insert只创建链接,照片没嵌入Excel。源文件移动或删除→工牌照片变空白。必须用Shapes.AddPicture(LinkToFile:=msoFalse)嵌入模式。口诀:"AddPicture嵌入才靠谱,Insert链接会断裂"。
坑5:打印机不支持自定义小尺寸纸张
部分激光打印机最小纸张A5(148mm×210mm),85mm×55mm工牌纸可能不被支持。解决方案:①A4纸每页排2-4张工牌(更常见也更实用)②专用标签打印机③工牌模板加安全边距防裁切缺边。
1. 「100人的工牌,手动做3小时——宏30秒搞定,手动的都后悔了」
2. 「照片路径一列搞定——文件夹规范了,Excel替你找照片」
3. 「单元格就是工牌的画布——行高列宽调到位,版式不跑偏」
4. 「有宏存xlsm,没宏存xlsx——存错了,30秒的宏就白录了」
5. 「改模板改的是一个Sheet,受益的是200个人——这才是批量生成的核心价值」
本文配套练习模板已上架「华杰办公助手」小程序:
→ 微信搜索「华杰办公助手」或点击 #小程序:#小程序://华杰办公/0bQvJ54DWs7K1XB华杰办公助手
→ 模板中心搜索【086】即可找到本期模板
→ 边学边练,会员免费下载全部模板
你做过全员工牌吗?手动做花了多久?评论区说说你的经历 👇 下期教邮件合并批量生成工资条/合同——Excel+Word组合更强大!
#Excel技巧 #HR干货 #工牌制作 #批量生成 #VBA宏 #办公自动化 #照片插入 #打印设置 #行政效率 #WPS
夜雨聆风