版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。

批量打印Excel时,以下代码可以实现按清单按文件夹(含子文件夹打印):

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim iPath As String, i As Long
Dim t
Dim PathLen As Integer
Dim RunSignal As Variant, Reply As Variant
Dim Tr As Single, Tc As Single

Tr = Target.Row
Tc = Target.Column
If Tr = 1 ThenIf Tc = 1 ThenRunSignal = "List"Reply = MsgBox("This operation will print out files listed in column A! Please make sure your print setting is excellent enough!", vbOKCancel, "Warning")If Reply = vbCancel ThenExit SubEnd IfElseIf Tc = 3 ThenRunSignal = "Folder"Reply = MsgBox("This operation will list all files in specified folder first. And then, print out! Please make sure you choosed the right folder!", vbOKCancel, "Warning")If Reply = vbCancel ThenExit SubEnd IfElseExit SubEnd If
ElseExit Sub
End If

t = Timer
Application.ScreenUpdating = False
If RunSignal = “List” Then
GoTo Line1
ElseIf RunSignal = “Folder” Then
ActiveSheet.UsedRange.Offset(1, 2).ClearContents
End If

With Application.FileDialog(msoFileDialogFolderPicker).Title = "Select a folder please!"If .Show TheniPath = .SelectedItems(1)PathLen = Len(iPath)ElseExit SubEnd If
End WithIf iPath = "False" Or Len(iPath) = 0 Then Exit Subi = 1Call GetFolderFile(iPath, i)

Line1: Call PrintFiles(RunSignal)
MsgBox “Completed in " & Int((Timer - t) / 3600) & " hours " & Int(((Timer - t) Mod 3600) / 60) & " minutes " & (Timer - t) Mod 60 & " seconds!”, vbOKOnly, “Time record”
Application.ScreenUpdating = True
End Sub

Private Sub GetFolderFile(ByVal nPath As String, ByRef iCount As Long)
Dim iFileSys

Dim J As Single
Dim Process As Variant, P As Integer
Dim ProcessLen As Integer

Set iFileSys = CreateObject(“Scripting.FileSystemObject”)
Set ifolder = iFileSys.GetFolder(nPath)
Set sfolder = ifolder.SubFolders
Set ifile = ifolder.Files

With ActiveSheetFor Each gfile In ifileIf gfile.Type Like "*Excel*" And Not gfile.Path Like "*~$*" Then.Cells(iCount + 1, 3) = gfile.Path.Cells(iCount + 1, 4) = gfile.DateLastModified.Cells(iCount + 1, 5) = gfile.parentfolder.Hyperlinks.Add anchor:=.Cells(iCount + 1, 6), Address:=gfile.Path, TextToDisplay:=gfile.NameiCount = iCount + 1End IfNextEnd WithFor Each nfolder In sfolder 'Search all the foldersCall GetFolderFile(nfolder.Path, iCount)
Next

End Sub

Sub PrintFiles(ByVal RunSignal As Variant)

Dim Wb As Workbook
Dim Sho As Worksheet
Dim Fs As Single, FCount As Single, C As Single

Application.DisplayAlerts = False

Set Sho = ActiveSheet
If RunSignal = “List” Then
C = 1
ElseIf RunSignal = “Folder” Then
C = 3
End If

FCount = Sho.Cells(10000, C).End(xlUp).Row

If FCount <= 2 Then
MsgBox (“Nothing can be printed!”)
Exit Sub
Else
For Fs = 2 To FCount
Set Wb = Workbooks.Open(Sho.Cells(Fs, C).Text)
Wb.Sheets(1).PrintOut
Wb.Close savechanges = False
Next
End If

Application.DisplayAlerts = True

End Sub


懒人专用文档_3积分下载

用宏实现Excel批量打印第一页工作表相关推荐

  1. Excel批量对所有的工作表设置保护的操作

    好了一个工作簿中既有隐藏的表格,又有显示的表格,现在小编要通过Excel批量对所有的工作表设置保护的操作 (方方格子插件) 1.先看动图演示吧 2.好了直接选择方方格子按钮 3.选择其中的工作表操作 ...

  2. Excel批量打印多个工作簿活动工作表的操作

    今天要和大家分享的是,Excel批量打印多个Excel工作簿文件当前工作表的第一页,看小编如何操作吧 (方方格子插件) 1.首先看动图吧 2.首先打开一个空白工作表,作为操作的平台 3.选择diy工具 ...

  3. 怎么将 Excel 中的第一个工作表或者其它指定的工作表批量替换成新的内容?

    概要:在我们日常办公中,经常会碰到需要替换 Excel 中的某一个 Sheet 或者某几个 Sheet 的功能,「我的ABC软件工具箱」就实现了批量替换指定 Sheet 的功能,可以轻松实现对 Exc ...

  4. Excel 批量打印合集1.0测试版发布

    版本已更新,请到 这里查看 (此版本比较稳定,能够批量打印工作簿,批量打印工作表,批量加密,批量解密,批量转换格式) 能够打印指定的一批工作簿.工作表,对表格指定位置依次填充指定的数据然后打印.附加于 ...

  5. 【解决】打印机只打印第一页纸的问题

    今公司的一台打印机奇怪的出现了这样的问题,前几天还一切正常,而现我们在打印多页纸的时候它只给我打印第一页,起初以为打印机自己出问题了,检查如下: 1.打印机设置正常 2.共享打印机也正常 3.打印机复 ...

  6. Python+Excel系列:案例六:批量打印工作簿、批量打印多个工作簿中的指定工作表

    文章目录 批量打印工作簿 批量打印多个工作簿中的指定工作表 批量打印工作簿 专门用于打印的函数PrintOut() import os #导入os模块 import xlwings as xw #导入 ...

  7. C# 获取Excel工作薄中Sheet页(工作表)名集合

    #region 获取Excel工作薄中Sheet页(工作表)名集合/// <summary> /// 获取Excel工作薄中Sheet页(工作表)名集合/// </summary&g ...

  8. python 表格输出到pdf_用python将excel文件中选定的工作表打印为pdf

    我需要编写一个python脚本来读取excel文件,找到每个工作表,然后用excel中定义的标准格式将它们打印成pdf. 这使我能够找到每个工作表的名称.import xlrd book = xlrd ...

  9. C# 获取Excel工作薄中Sheet页(工作表)名集合

    #region 获取Excel工作薄中Sheet页(工作表)名集合/// <summary> /// 获取Excel工作薄中Sheet页(工作表)名集合/// </summary&g ...

最新文章

  1. Spark集群部署(standLone)模式
  2. 应用服务器与WSGI协议以及flask后端框架总结(后端接收请求返回响应的整个流程)...
  3. python3高阶函数:map(),reduce(),filter()的区别
  4. 2018年第九届蓝桥杯C/C++ C组国赛 —— 第二题:最大乘积
  5. C#:关于双引号的输出
  6. python socket.error: [Errno 24] Too many open files
  7. java 类变量 赋值_Java 中类变量,实例变量,局部变量的赋值
  8. web前端开发技术现状与发展_Web前端开发的未来,将会有哪些发展方向?
  9. 2017级C语言大作业 - 气球塔防
  10. js进阶 10-4 jquery中基础选择器有哪些
  11. 31. 连续子数组的最大和
  12. C++ Beep函数播放歌曲《千本樱》
  13. JAVA管理信息系统答辩ppt,个人信息管理系统答辩ppt
  14. PMP/PRINCE2/IPMP/软考,主流项目管理认证对比
  15. 角度转换之度分秒的转换成度
  16. PROFINET 概念
  17. ClusterStorage-5-配置ACLs与Quotas之设置ACLs
  18. 2021年焊工(初级)免费试题及焊工(初级)实操考试视频
  19. Python PyQt5简介
  20. 在windows中对数字证书进行管理

热门文章

  1. UML之程序流程图画法
  2. 低代码协同政务OA升级,打造智慧办公平台
  3. 论坛热贴 | RT-Thread音频驱动开发(一)
  4. TSP问题——Hopfield神经网络
  5. Java各类技能知识点学习链接大全:八、Redis 缓存
  6. 什么是socket?socket详解
  7. adams样条驱动_Adams中如何生成3D样条数据
  8. Python-OpenCV改变摄像头输出编码格式和帧率
  9. FI中定义附加本位货币,硬通货
  10. 远程桌面连接当前已关闭你的背景 解决远程桌面背景变黑的问题