Excel批量转成PDF的问题。
老师我不是很懂VBA的代码,可能我描述的不清楚。我有一个Excel批量转PDF的代码,在把Excel转成PDF文件的时候把不是打印区域的数据也打印出来如图片1,想麻烦老师...
老师我不是很懂VBA的代码,可能我描述的不清楚。我有一个Excel批量转PDF的代码,在把Excel转成PDF文件的时候把不是打印区域的数据也打印出来如图片1,想麻烦老师帮忙看看,怎么才能实现只打印打印区域的内容,不是打印区域的内容不打印。下面有图片老师请看图片,图片1红框区域内的内容就是此代码打印出来,图片2是就自己手动转PDF的时候显示。想麻烦老师帮忙看看代码怎么修改才能实现只打印图纸2的效果Sub BatchConvertWorkBookToPDF()Application.DisplayAlerts = FalseApplication.ScreenUpdating = False Dim fDialog As FileDialog Set fDialog = Application.FileDialog(msoFileDialogFilePicker) Dim vrtSelectedItem As Variant Dim wkBook As Workbook Dim showFolder As Boolean showFolder = False With fDialog .Filters.Add "Excel文件", "*.xls; *.xlsx; *.xlsm", 1 If .Show = -1 Then For Each vrtSelectedItem In .SelectedItems '如果选择了本工作簿则跳过 If InStrRev(vrtSelectedItem, ThisWorkbook.Name) = 0 Then On Error Resume Next Set wkBook = Application.Workbooks.Open(vrtSelectedItem, ReadOnly:=True, Password:="") '跳过设置打开密码的工作簿 If Not wkBook Is Nothing Then '跳过隐藏的工作簿 If Windows(wkBook.Name).Visible = True Then showFolder = True '转换开始 wkBook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ Left(vrtSelectedItem, InStrRev(vrtSelectedItem, ".") - 1) & ".pdf" _ , Quality:=xlQualityMinimum, IncludeDocProperties:=False, IgnorePrintAreas _ :=True, OpenAfterPublish:=False wkBook.Close , savechanges = False Else wkBook.Close , savechanges = False End If End If End If Next vrtSelectedItem If showFolder Then Call Shell("explorer.exe " & Left(fDialog.SelectedItems(1), _ InStrRev(fDialog.SelectedItems(1), "\")), vbMaximizedFocus) End If End With Set fDialog = NothingApplication.ScreenUpdating = TrueApplication.DisplayAlerts = TrueEnd Sub
展开
3个回答
2019-02-13
展开全部
将excel转换为pdf格式时,其实并不困难。只要将excel另存为,再存储过程中将文件格式设置为pdf格式就能完成转换。但是当excel表格数量较多时,如何将excel批量转pdf。
先在百度搜索引擎当中搜索查找安装转换工具,然后双击打开进入界面。在界面里先单击选中其他文件转PDF选项,接着再单击选中下方的Excel转PDF选项。
接下来大家使用鼠标单击添加文件选项,在显示的窗口内选中要转换得excel,再单击右下角的打开选项,就能将excel添加到转换器中了。
紧接着大家使用鼠标单击选中开始转换选项,转换器就会开始文件的转换。等到转换完成后,再使用鼠标左击打开选项下方的文件夹图标就能查看转换后的pdf文件了。
转换工具:【迅捷PDF转换工具】
先在百度搜索引擎当中搜索查找安装转换工具,然后双击打开进入界面。在界面里先单击选中其他文件转PDF选项,接着再单击选中下方的Excel转PDF选项。
接下来大家使用鼠标单击添加文件选项,在显示的窗口内选中要转换得excel,再单击右下角的打开选项,就能将excel添加到转换器中了。
紧接着大家使用鼠标单击选中开始转换选项,转换器就会开始文件的转换。等到转换完成后,再使用鼠标左击打开选项下方的文件夹图标就能查看转换后的pdf文件了。
转换工具:【迅捷PDF转换工具】
展开全部
不知道你有没有发现,你这样粘贴代码,根本没办法看。
代码里面核心的语句就是:
ExportAsFixedFormat
如果转换整个工作簿就用wbook.ExportAsFixedFormat,如果只转换一个表就用ActiveSheet.ExportAsFixedFormat,如果只转换一个表的某个区域就使用Range.ExportAsFixedFormat
打印区域转换为PDF的语句:
Range(ActiveSheet.PageSetup.PrintArea).ExportAsFixedFormat
但是如果这个表格没有设置打印区域,以上语句会报错,如果是批量转换要自动处理的话,还得增加判断。
代码里面核心的语句就是:
ExportAsFixedFormat
如果转换整个工作簿就用wbook.ExportAsFixedFormat,如果只转换一个表就用ActiveSheet.ExportAsFixedFormat,如果只转换一个表的某个区域就使用Range.ExportAsFixedFormat
打印区域转换为PDF的语句:
Range(ActiveSheet.PageSetup.PrintArea).ExportAsFixedFormat
但是如果这个表格没有设置打印区域,以上语句会报错,如果是批量转换要自动处理的话,还得增加判断。
追问
发现了代码这样不方便看呀。老师怎么才能按行打出来那。像你一样用显示每行那样显示那。
Range(ActiveSheet.PageSetup.PrintArea).ExportAsFixedFormat
这个代码好使,但是只能打印一页。批量转换要自动处理的话,怎么增加判断那。还要麻烦一下老师。特别感谢
来自:求助得到的回答
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-01-07 · 知道合伙人互联网行家
关注
展开全部
原因与解决办法: 纸张大小的问题! 虽然预览时没有问题,但是打印或者转换的时候 还是会遇到打印机的字体不太一样的情况,所以如果是在临界状态,那么就会产生这样的问题的。 还是针对有问题的列 ,重新调整一下。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询