Excel VBA 转到文件夹并将所有 Excel 文档另存为单独的 PDF 文件
Posted
技术标签:
【中文标题】Excel VBA 转到文件夹并将所有 Excel 文档另存为单独的 PDF 文件【英文标题】:Excel VBA to go to a folder and save all Excel Docs as seperare PDF files 【发布时间】:2018-11-14 07:20:47 【问题描述】:我一直在编写一些代码,但似乎无法让它工作..如果我说实话,我认为我还差得很远..
我想在 Excel 文档中编写一个按钮以转到文件夹,即 D:\Work\
里面有很多 Excel 电子表格,每个人都保存为单独的 PDF 文档?
提前致谢
【问题讨论】:
您能否向我们展示您目前的成果,并让我们知道绊脚石在哪里? 将其分解为单个任务,并为每个任务搜索现有答案和示例。例如:How to list all files in folder 和 How to save excel file as PDF。 【参考方案1】:Loop through all files 下面的代码,然后是save all worksheets with in a workbook as PDF。我已经对代码进行了注释以帮助您理解它。
Option Explicit
Sub Loop_Dir_for_Excel_Workbooks()
Dim strWorkbook As String
Dim wbktoExport As Workbook
Dim strSourceExcelLocation As String
strSourceExcelLocation = "D:\Work\XLS\"
'Search all Excel files in the directory with .xls, .xlsx, xlsm extensions
strWorkbook = Dir(strSourceExcelLocation & "*.xls*")
Do While Len(strWorkbook) > 0
'Open the workbook
wbktoExport = Workbooks.Open(strWorkbook)
'Export all sheets as single PDF
Call Export_Excel_as_PDF(wbktoExport)
'Get next workbook
strWorkbook = Dir
'Close Excel workbook without making changes
wbktoExport.Close False
Loop
End Sub
Sub Export_Excel_as_PDF(ByRef wbk As Workbook)
Dim strTargetPDFLocation As String
strTargetPDFLocation = "D:\Work\PDF\"
'Select all worksheets in the opened workbook
wbk.Sheets.Select
'Activate first worksheet
wbk.Sheets(1).Activate
'Export as PDF
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
strTargetPDFLocation & wbk.Name & ".pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
End Sub
【讨论】:
以上是关于Excel VBA 转到文件夹并将所有 Excel 文档另存为单独的 PDF 文件的主要内容,如果未能解决你的问题,请参考以下文章
从 pdf 中提取表格(到 excel),pref。带 vba