Excel VBA从单元格中选择特定工作表以保存为1 pdf

时间:2017-03-20 09:05:42

标签: excel vba excel-vba pdf

我希望有人可以帮助我。

我有一些代码可以在一个工作簿中选择一系列工作表,并将它们保存为一个PDF文件。目前,这些工作表专门编入VBA。

我想让它更具动态性,并让代码读取从一系列单元格中选择的工作表,其中包含我想要选择的每个工作表的标题,以便在需要时可以在其他地方轻松使用此代码。

或者,我的所有工作表都是有序的,所以我只需要选择前14个工作表,第15个被称为“停止在PDF上”,其后是一些输入文件和配置页等。所以可能有一些代码选择所有工作表,直到达到具有该特定名称的工作表?

到目前为止,这是我的代码:

Sub AutoPDFReport()


Dim myDir As String, mySht As String

myDir = "I:\" & Sheets("Config").Range("N7").Value
mySht = Sheets("Config").Range("N9").Value

On Error Resume Next
MkDir myDir
On Error GoTo 0

Sheets(Array("Overview_For_Email", "XXXX", _
    "XXXX", "XXXX", _
    "XXXX", "XXXX", _
    "XXXX", "XXXX", _
    "XXXX", "XXXX", _
    "XXXX", "XXXX", _
    "XXXX", "XXXX")).Select

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=myDir & "\" & mySht & Format(Now, "yyyy") & "-" & Format(Now, "mm") & "-" & Format(Now, "dd") & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True

Worksheets("SalesReportSlim").Select  

End Sub

XXXX是我的工作表。

由于

1 个答案:

答案 0 :(得分:0)

这对我有用。它使用您的第二种方法,在工作表中循环,直到找到“在PDF上停止”,并保存为PDF。只需填写正确的目录即可。请注意,字符串比较似乎区分大小写,与excel中的大多数情况不同,因此请小心键入它。

Sub ExportToPDF()

    'cycle through sheets in workbook
    For Each ws In ActiveWorkbook.Worksheets

        'save sheetname and check it - if not "stop", then save as pdf
        Dim newname As String
        newname = ws.Name
        MsgBox (newname)
        If newname = "Stop On PDF" Then
            Exit Sub
        End If

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\[put in your address here]\" & newname & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

    Next ws

End Sub