周五下午五点,夕阳的余晖懒洋洋地洒在你的工位上,你刚准备收拾东西,迎接一个没有工作的周末。就在这时,老板或者某个项目负责人,像幽灵一样飘到你身后,轻轻放下U盘,或者甩来一个压缩包,语气轻松得仿佛在问你晚上吃什么:“这些报表,下班前都打出来,整理好,周一开会要用。”
你打开文件夹一看,瞳孔地震。
几十个,甚至上百个独立的Excel文件。每个文件里,可能还有好几个sheet。
你怎么办?
一个一个打开,Ctrl+P,回车。再打开下一个,Ctrl+P,回车。你的大脑瞬间进入一种半休眠的机械状态,灵魂仿佛已经下班,只剩下肉体和那根可怜的食指在进行着最原始的重复劳动。打印机像一头沉睡的怪兽,被你一次次唤醒,发出不耐烦的轰鸣,办公室里只剩下你和它在无声地对峙。
这根本不是在工作,这是在修行。是对生命、对鼠标、对你宝贵的下班时间最残忍的消耗。
今天,我就要给你几把钥匙,让你从这个名为“重复打印”的牢笼里,优雅地走出来。咱们不谈那些虚头巴脑的理论,只讲实战,讲那些能让你提前半小时去赶地铁的真功夫。
第一招:内功心法——工作簿内的“乾坤大挪移”
我们先从最简单,但也最常见的情景说起:一个Excel文件里,有N个需要打印的工作表(Sheet)。
很多人,真的,我见过太多人了,他们会点一个sheet,打印,再点下一个sheet,再打印。看着都心累。
其实,Excel早就给你准备好了“组合技”。
按住键盘上的Ctrl键,然后用鼠标左键,像玩连连看一样,把你想要打印的那些工作表一个个点亮。你会发现它们的标签页都变成了白色,被选中了。
或者,如果你的目标是打印一片连续的工作表,比如从Sheet1到Sheet10,那就更简单了。先点一下Sheet1,然后按住Shift键,再直接点一下Sheet10。唰的一下,中间所有的工作表都会被选中。
当你完成了这个“组队”操作后,直接点击文件 -> 打印(或者你心爱的Ctrl+P快捷键)。这时候,神奇的事情发生了,你会在打印预览里看到,所有被选中的工作表都排着队等待你的指令。页数也不再是单个工作表的页数,而是所有被选中工作表的总和。
这时候,你只需要设置一次打印参数,比如打印机、纸张方向、份数,然后潇洒地点击那个大大的打印按钮。
搞定。
打印机会一次性把所有任务都吞进去,然后突突突地开始工作。你就可以端起杯子,去茶水间泡杯咖啡,享受同事们投来的惊叹(或者嫉妒)的目光了。
注意! 这一招有个小小的“内伤”风险。如果你的这些工作表页面设置(比如页边距、横向纵向)乱七八糟,各不相同,那么打印出来的效果可能会有点“惊喜”。所以,在用这招之前,最好保证你要打印的这些工作表,它们的页面布局是大体一致的。
第二招:外家功夫——文件夹里的“隔山打牛”
好了,场景升级。现在你面对的不是一个文件里的多个sheet,而是我们开头提到的那个噩梦:一个文件夹里,躺着几十上百个独立的Excel文件。
难道真的要一个一个打开吗?
不。Windows系统其实给了你一个“后门”,一个简单粗暴,但有时候特别管用的方法。
打开那个存放着所有Excel文件的文件夹。
像在桌面上框选图标一样,按住Ctrl键点选你想要打印的文件,或者直接Ctrl+A全选。
然后,在这堆被选中的文件上,单击鼠标右键。在弹出的那个长长的菜单里,仔细找,你会看到一个平平无奇的选项——打印。
点下去。
接下来,就是见证奇迹的时刻。你的电脑会短暂地思考一下人生,然后Excel程序会在后台被悄悄唤醒,一个接一个地打开这些文件,执行打印命令,然后关闭。整个过程,你甚至看不到Excel的界面。你唯一能看到的,就是打印任务队列里,文件数量在疯狂地增加。
这一招,讲究的就是一个快,一个出其不意。但它的缺点也和它的优点一样突出:你完全无法控制打印的细节。
它会用你默认的打印机,打印每个文件里的当前活动工作表(Active Sheet),也就是你最后一次保存这个文件时,停留在哪个sheet,它就打印哪个。如果那个sheet恰好是空的,那你就收获一张白纸。如果这些文件的页面设置五花八门,那你打印出来的东西也会同样精彩。
所以,这招是“大力出奇迹”的招式,适合那些格式高度统一、内容明确、且你确定每个文件的活动工作表就是你要打印的那一页的场景。用之前,心里得有数,不然浪费的纸张,可能会让你在行政大姐那里挂上号。
第三招:神兵利器——VBA宏的“终极审判”
如果说前面两招是拳脚功夫,那接下来要说的,就是真正的“神兵利器”了。它能解决几乎所有批量打印的疑难杂症,实现高度定制化的需求。
它的名字,让很多初学者望而生畏,但其实它是一只纸老虎。它就是——VBA(Visual Basic for Applications)。
别怕,你不需要懂编程,你只需要学会复制、粘贴,然后改一两个地方,就能拥有这股强大的力量。
场景一:打印当前工作簿里的所有工作表
想象一下,一个工作簿里有50个sheet,你都要打,但又不想用Ctrl或Shift一个个去点。
- 打开你的Excel文件,按下
Alt + F11组合键。你会进入一个看起来很“黑客”的界面,这就是VBA编辑器。 - 在左侧的工程资源管理器里,找到你的文件名,右键点击,选择
插入->模块。 - 这时右边会出现一个空白的窗口,像一张白纸。把下面这段代码,原封不动地复制进去:
vb
Sub PrintAllSheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.PrintOut
Next ws
End Sub
- 好了,关闭这个VBA编辑器窗口。回到Excel界面。
- 按下
Alt + F8组合键,会弹出一个“宏”对话框。你会看到一个叫PrintAllSheets的宏,选中它,点击执行。
轰!打印机开始疯狂工作,把这个文件里的每一个工作表,都给你打印了出来。
这段代码的意思很简单,就是告诉Excel:“喂,给我把这个工作簿(ThisWorkbook)里的每一个(For Each)工作表(Worksheet),都打印(PrintOut)一遍。”
场景二:打印指定文件夹下的所有Excel文件
这是对付“文件夹噩梦”的终极解决方案。
同样,打开任意一个Excel文件(或者新建一个),按Alt + F11进入VBA编辑器,插入一个新模块,然后把下面的代码复制进去:
```vb Sub PrintAllFilesInFolder() Dim MyFolder As String Dim MyFile As String
'--- 这里是唯一需要你修改的地方!---
MyFolder = "C:\Users\你的用户名\Desktop\需要打印的报表\" '把这里换成你自己的文件夹路径
'--------------------------------------
If Right(MyFolder, 1) <> "\" Then MyFolder = MyFolder & "\"
MyFile = Dir(MyFolder & "*.xls*")
Do While MyFile <> ""
Workbooks.Open Filename:=MyFolder & MyFile
'--- 打印逻辑在这里 ---
' 示例1: 打印所有工作表
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ws.PrintOut
Next ws
' 示例2: 只打印名为"汇总表"的工作表 (如果需要)
' On Error Resume Next ' 忽略找不到工作表的错误
' ActiveWorkbook.Sheets("汇总表").PrintOut
' On Error GoTo 0
'-----------------------
ActiveWorkbook.Close SaveChanges:=False ' 关闭文件,不保存任何更改
MyFile = Dir
Loop
MsgBox "打印任务已全部发送!"
End Sub ```
这段代码比上一个复杂一点,但你真正需要动的,只有一处:
MyFolder = "C:\Users\你的用户名\Desktop\需要打印的报表\"
把双引号里面的路径,换成你存放那堆Excel文件的实际文件夹路径。怎么获取这个路径?很简单,打开那个文件夹,在地址栏里点一下,复制出来的就是。
特别提醒:路径的最后一定要有一个反斜杠 \。
这段代码会做什么呢?它会像一个勤劳的机器人,跑到你指定的那个文件夹里,把所有.xls、.xlsx、.xlsm结尾的Excel文件,一个一个地打开,然后执行中间的打印逻辑(默认是打印所有工作表),打印完了再给你关上,还不保存任何修改,简直是“事了拂衣去,深藏功与名”。
最后,别忘了,用了宏的文件,在保存的时候要选择另存为,把文件类型改成 Excel 启用宏的工作簿 (*.xlsm),不然你下次打开,代码就消失了。
总结一下,也是一些心里话
技术的存在,不是为了炫技,而是为了把我们从重复、枯燥、没有创造力的劳动中解放出来。
当你面对一座需要打印的文件大山时,别再下意识地伸出你的食指,准备开始那场漫长的“修行”。停下来,想一想。
- 是不是一个文件里的多个sheet?用
Ctrl或Shift组队打印。 - 是不是一堆格式统一的文件,要求不高,图个快?在文件夹里右键打印。
- 是不是情况复杂,要求多,或者你想一劳永逸地解决这个问题?别犹豫,请出
VBA这尊大神。
掌握这些方法,你省下来的可能不仅仅是半小时或一小时。你省下来的是一份好心情,是和家人朋友共进晚餐的时间,是那个本该属于你自己的,宁静而美好的周五夜晚。
去试试吧,把这些招式,变成你自己的肌肉记忆。下次再有人扔给你一堆文件,你就可以微微一笑,泡杯茶,看着打印机独自忙碌,深藏功与名。
【你是不是也经历过这样的绝望?】相关文章:
excel怎么设置编号12-05
excel表格怎么互换12-05
excel怎么插入背景12-05
Excel减号怎么输入?12-05
excel怎么删除按钮12-05
excel太大怎么打印12-05
你是不是也经历过这样的绝望?12-05
excel怎么输入卡号12-05
excel怎么对齐图片12-05
excel平方怎么表示12-05
excel怎么自动居中12-05
excel怎么打印图表12-05
别,别再点那个倾斜的 “ab” 图标了。12-05