首页 文章

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

提问于
浏览
0

我希望有人可以帮助我 .

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

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

或者,我的所有工作表都是有序的,所以我只需要选择前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

结束子

XXXX是我的工作表 .

谢谢

1 回答

  • 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
    

相关问题