写一段excel vba程序,将工作表名为New的工作表另存为PDF文件,文件名为NEW,并将pdf文件保存在d盘PO中。保存好后删除工作表
时间: 2024-09-15 11:14:49 浏览: 74
Excel-VBA应用:循环将多个工作表另存为PDF的宏代码
在Excel VBA中,你可以使用ActiveXObject(对于Windows系统)或者XlApp.Pictures.SaveAs(对于Office 365版本)来创建并操作PDF文件。下面是一个简单的示例程序:
```vba
Sub ConvertAndDeleteSheet()
Dim ws As Worksheet
Dim pdfPath As String
Dim objPDF As Object
' 获取New工作表
Set ws = ThisWorkbook.Worksheets("New")
' 设置PDF文件路径
pdfPath = "D:\PO\"
' 创建PDF对象
If Microsoft.Office.Interop.Excel.Application.XlAppVersion > 14 Then
Set objPDF = CreateObject("Microsoft.Office.Interop.Word._WordApplication")
objPDF.Visible = False
Else
Set objPDF = CreateObject("AcroExch.App")
End If
' 将工作表另存为PDF
With ws.ExportAsFixedFormat(0, pdfPath & "NEW.pdf", True, -1, , , , , True)
' 删除临时的工作表
ws.Delete
' 关闭或退出PDF应用程序
If Not objPDF Is Nothing Then
If Microsoft.Office.Interop.Excel.Application.XlAppVersion > 14 Then
objPDF.Quit
Else
objPDF.Exit
End If
End If
End With
End Sub
```
这个VBA脚本首先获取名为"New"的工作表,然后设置PDF文件的保存路径。接着,它通过创建Word.Application或Acrobat的COM对象来处理PDF生成。`ExportAsFixedFormat`方法用于将工作表转换为PDF格式,然后立即删除该工作表。最后,如果使用的是较旧版本的Excel,则关闭Word应用程序。
阅读全文