Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1524|回复: 9

大神,谁帮我写下批量打印代码

[复制链接]
发表于 2021-9-12 13:44 | 显示全部楼层 |阅读模式

根据这个表单顺序

根据这个表单顺序

打印的内容

打印的内容
需求就是,根据图一的内容(设置打印按钮),自动从文件夹选取文件打印,每个文件只有一个工作表



 楼主| 发表于 2021-9-12 13:52 | 显示全部楼层
就是需要按照我的指定文件名称打印(这个后期可能去调整)),可以是个列表
回复

使用道具 举报

 楼主| 发表于 2021-9-12 14:36 | 显示全部楼层
遍历文件,打开,再打印。
好像这个思路可以,但是我不会写,大神帮帮忙
回复

使用道具 举报

 楼主| 发表于 2021-9-12 14:41 | 显示全部楼层
路径是这样的
思路.png
回复

使用道具 举报

发表于 2021-9-12 16:14 | 显示全部楼层
  1. Sub print_print()
  2. Application.ScreenUpdating = False '禁用屏幕刷新
  3. Dim wk As Workbook
  4. Dim i As Integer
  5. For i = 2 To Range("b2").End(xlDown).Row '循环单元格区域
  6. Set wk = Workbooks.Open([color=Red]ThisWorkbook.Path[/color] & Application.PathSeparator & Range("b" & i).Value & ".xlsx") '打开对应表格,地址(红色部分,最后处别带\号)请修改为你存放表格的地址
  7.     wk.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False '打印表格
  8.     wk.Close '关闭表格
  9. Next
  10. Application.ScreenUpdating = True
  11. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2021-9-12 17:26 | 显示全部楼层

路径写哪里?麻烦帮我孔号标注下,我直接替换地址
回复

使用道具 举报

发表于 2021-9-12 17:52 | 显示全部楼层
Sub print_print()
Application.ScreenUpdating = False '禁用屏幕刷新
Dim wk As Workbook
Dim i As Integer
For i = 2 To Range("b2").End(xlDown).Row '循环单元格区域
Set wk = Workbooks.Open(ThisWorkbook.Path & Application.PathSeparator & Range("b" & i).Value & ".xlsx") '打开对应表格
    wk.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False '打印表格
    wk.Close '关闭表格
Next
Application.ScreenUpdating = True
End Sub
回复

使用道具 举报

发表于 2021-9-13 10:25 | 显示全部楼层
你可以用插件把工作薄里指定的工作表合并到一个工作薄里,再多选工作表打印就是
回复

使用道具 举报

发表于 2021-10-15 15:54 | 显示全部楼层
Sub print_print()
Application.ScreenUpdating = False '禁用屏幕刷新
Dim wk As Workbook
Dim i As Integer
For i = 2 To Range("b2").End(xlDown).Row '循环单元格区域
Set wk = Workbooks.Open(ThisWorkbook.Path & Application.PathSeparator & Range("b" & i).Value & ".xlsx") '打开对应表格,地址(红色部分,最后处别带\号)请修改为你存放表格的地址
    wk.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False '打印表格
    wk.Close '关闭表格
Next
Application.ScreenUpdating = True
End Sub

回复

使用道具 举报

发表于 2021-10-15 15:54 | 显示全部楼层
Sub print_print()
Application.ScreenUpdating = False '禁用屏幕刷新
Dim wk As Workbook
Dim i As Integer
For i = 2 To Range("b2").End(xlDown).Row '循环单元格区域
Set wk = Workbooks.Open(ThisWorkbook.Path & Application.PathSeparator & Range("b" & i).Value & ".xlsx") '打开对应表格,地址(红色部分,最后处别带\号)请修改为你存放表格的地址
    wk.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False '打印表格
    wk.Close '关闭表格
Next
Application.ScreenUpdating = True
End Sub
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 03:39 , Processed in 0.440783 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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