前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA批量打印同一文件夹下的Excel文件

VBA批量打印同一文件夹下的Excel文件

作者头像
一线编程
发布2019-07-22 11:39:41
3K0
发布2019-07-22 11:39:41
举报
文章被收录于专栏:办公魔盒办公魔盒

VBA批量打印同一文件夹下的Excel文件!!注意:只能打已经设置好打印范围的Excel文件!!如果想打印任意数据区域请自行增加!!


Sub 批量打印()

Application.ScreenUpdating = False

Dim currentFileName As String

Dim myPath As String

Dim myFileName As String

Dim myFileFullName As String

Dim myWork As Object

Dim mySheet As Object

On Error Resume Next

currentFileName = Application.ActiveWorkbook.Name

With Application.FileDialog(msoFileDialogFolderPicker)

.InitialFileName = "C:\Users\" & Environ("username") & "\Desktop\"

If .Show = True Then myPath = .SelectedItems(1) & "\"

End With

myFileName = Dir(myPath)

If myFileName = "" Then

MsgBox "该文件夹下没有可打印的文件!"

Application.ScreenUpdating = True

Exit Sub

End If

Do While Len(myFileName) > 0

If myFileName <> currentFileName Then

If Right(myFileName, 3) = "xls" Or Right(myFileName, 4) = "xlsx" Then

myFileFullName = myPath & myFileName

Set myWork = GetObject(myFileFullName)

Set mySheet = myWork.Worksheets("料单") 'sheet表名称

Set mySheet1 = myWork.Worksheets("五金") 'sheet表名称

Application.PrintCommunication = False '停止打印机通信

mySheet.PageSetup.FitToPagesWide = 1 '设置列压缩

mySheet1.PageSetup.FitToPagesWide = 1

Application.PrintCommunication = True

mySheet.PrintOut '打印输出

mySheet1.PrintOut

myWork.Close saveChanges:=False

End If

End If

myFileName = Dir()

Loop

MsgBox "所有文件已经全部传输到打印机中!" & vbCrLf & "请耐心等待......"

Application.ScreenUpdating = True

End Sub


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-07-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 办公魔盒 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档