Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何使用VBA将工作簿中的特定工作表保存为唯一的PDF文件_Excel_Vba - Fatal编程技术网

Excel 如何使用VBA将工作簿中的特定工作表保存为唯一的PDF文件

Excel 如何使用VBA将工作簿中的特定工作表保存为唯一的PDF文件,excel,vba,Excel,Vba,我正试图用下面的代码将特定工作表保存为PDF,但错误消息显示运行时错误'1004':对象的方法'SaveAs'失败 Sub SaveAsPDF() Dim path As String Dim MyDate As String Dim WS As Worksheet path = "c:\invoice\" MyDate = Date MyDate = Format(MyDate, "dd_mm_yyyy") Application.D

我正试图用下面的代码将特定工作表保存为PDF,但错误消息显示运行时错误'1004':对象的方法'SaveAs'失败

Sub SaveAsPDF()
    Dim path As String
    Dim MyDate As String
    Dim WS As Worksheet
    path = "c:\invoice\"

    MyDate = Date
    MyDate = Format(MyDate, "dd_mm_yyyy")

    Application.DisplayAlerts = False

    For Each WS In ThisWorkbook.Worksheets
        WS.SaveAs Filename:=path & Range("D6").Text & "-" & Range("K6").Value & "-" & _
        MyDate, FileFormat:=xlTypePDF
    Next

    Application.DisplayAlerts = True
    ActiveWorkbook.Close savechanges:=False
End Sub 

您需要使用
ExportAsFixedFormat
,而不是
SaveAs
(以及适当的参数名称)


谢谢现在它发布了工作表,但它压碎了文件你是说它崩溃了吗?哪里怎么做?耶。。它崩溃了。当文件导出时,会生成新的pdf文件,但excel文件会崩溃,需要重新启动。您确定它不是在关闭吗?代码的最后一行是关闭原始工作簿。是的,不仅仅是关闭。。它说“微软Office Excel已经停止工作……”
Sub SaveAsPDF()

Dim path As String
Dim MyDate As String
Dim WS As Worksheet
path = "c:\invoice\"

MyDate = Date
MyDate = Format(MyDate, "dd_mm_yyyy")

Application.DisplayAlerts = False

For Each WS In ThisWorkbook.Worksheets
    WS.ExportAsFixedFormat Filename:=path & Range("D6").Text & "-" & Range("K6").Value & "-" & MyDate, Type:=xlTypePDF
Next

Application.DisplayAlerts = True

ActiveWorkbook.Close savechanges:=False

End Sub