将工作簿中的每个工作表保存为一个单独的pdf

我想遍历工作簿中的所有工作表,并将它们作为单独的pdf保存在与工作簿相同的path中。 这些文件以工作表名称命名。

下面的代码工作到“wsA.ExportAsFixedFort”行。 我得到的错误消息是:

Run-time error '91': Object variable or With block variable not set 

但我无法弄清楚是什么问题…

有什么build议么?

 Option Explicit Sub WorksheetLoop() Dim wsA As Worksheet Dim wbA As Workbook Dim strTime As String Dim strName As String Dim strPath As String Dim strFile As String Dim strPathFile As String Dim myFile As Variant Dim WS_Count As Integer Dim I As Integer ' Set WS_Count equal to the number of worksheets in the active workbook. Set wbA = ActiveWorkbook WS_Count = wbA.Worksheets.Count strPath = wbA.Path strTime = Format(Now(), "yyyymmdd\_hhmm") 'get active workbook folder, if saved strPath = wbA.Path If strPath = "" Then strPath = Application.DefaultFilePath End If strPath = strPath & "\" ' Begin the loop. For I = 1 To WS_Count 'replace spaces and periods in sheet name strName = Replace(wbA.Worksheets(I).Name, " ", "") strName = Replace(strName, ".", "_") 'create default name for savng file strFile = strName & "_" & strTime & ".pdf" myFile = strPath & strFile Debug.Print myFile 'export to PDF if a folder was selected If myFile <> "False" Then wsA.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:=myFile, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False 'confirmation message with file info MsgBox "PDF file has been created: " _ & vbCrLf _ & myFile End If Next I End Sub 

尝试改变这样的:

 If myFile <> "False" Then ActiveSheet.ExportAsFixedFormat _ Type:=xlTypePDF, _ FileName:=myFile, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False 

然后尝试find一个方法如何循环表单,这是一个微不足道的VBA任务。 一般来说,在你的代码wsA没有设置。 因此,你有一个错误。