使用vba批量处理桌面上的1文件夹下里面的表格转换为PDF,同时自动刷新当前处理的文件名
时间: 2024-03-27 10:35:55 浏览: 89
可以使用以下的VBA代码来实现你的需求:
```
Sub ConvertToPDF()
Dim sFolderPath As String
Dim sPDFPath As String
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Dim objExcel As Object
'设置文件夹路径
sFolderPath = Environ("USERPROFILE") & "\Desktop\1\"
'获取文件夹对象
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(sFolderPath)
'遍历文件夹中的文件
For Each objFile In objFolder.Files
If Right(objFile.Name, 4) = "xlsx" Then '判断是否为Excel文件
'设置PDF文件路径
sPDFPath = sFolderPath & Replace(objFile.Name, ".xlsx", ".pdf")
'打开Excel文件
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False
objExcel.Workbooks.Open objFile.Path
'导出为PDF
objExcel.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sPDFPath, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False
'关闭Excel文件
objExcel.Workbooks.Close
objExcel.Quit
'刷新当前处理的文件名
Application.StatusBar = "正在处理:" & objFile.Name
End If
Next
'释放对象
Set objFile = Nothing
Set objFolder = Nothing
Set objFSO = Nothing
Set objExcel = Nothing
'清除状态栏
Application.StatusBar = False
End Sub
```
你可以将上面的代码复制到一个新的 VBA 模块中,然后运行 `ConvertToPDF` 子过程来批量将指定文件夹中的 Excel 文件转换为 PDF 文件。
注意:在运行代码之前,最好先在 Excel 中手动打开一个要转换的 Excel 文件,然后关闭所有 Excel 窗口,这样可以确保在导出 PDF 时不会弹出诸如“文件已经打开,是否只读打开”等提示框。
阅读全文