2014-11-07 2 views
0

많은 워크 시트가있는 통합 문서가 있습니다. 첫 번째 페이지는 Worksheet 1이고 두 번째 페이지는 Worksheets 2-x 인 두 페이지 PDF로 저장하려고합니다. 내 코드는 현재 통합 문서의 각 워크 시트에 대해 개별 PDF를 저장할 수 있습니다. 나는 그것을하기 위해 무엇을 덧붙일 지 궁금합니다. 누구든지 조언을 공유 할 수 있습니까?Excel에서 VBA를 사용하여 선택한 시트를 PDF로 저장

감사합니다.

Option Explicit 

Sub createPDFfiles() 
Dim ws As Worksheet 
Dim Fname As String 
For Each ws In ActiveWorkbook.Worksheets 
    On Error Resume Next 

    Fname = "C:\Folder\" & ws.Name & "Report" & Format(Date, "yyyy-mm-dd") & ".pdf" 

    ws.ExportAsFixedFormat _ 
     Type:=xlTypePDF, _ 
     Filename:=Fname, _ 
     Quality:=xlQualityStandard, _ 
     IncludeDocProperties:=True, _ 
     IgnorePrintAreas:=False 
Next ws 
End Sub 
+0

어떤 Excel 버전을 사용하고 있습니까? –

+0

미안합니다. 저는 Excel 2007에 있습니다. – Andrew

+0

첫 번째 시트를 한 파일에, 나머지 시트를 두 번째 파일에 넣으려는 것입니까? – bernie

답변

0

당신은 워크 시트를 열거하고 루프 내부 저장 당신을 다하고 있습니다. 이것이 워크 시트 당 하나의 PDF를 얻는 이유입니다. ActiveWorkbook.Worksheets 대신 통합 문서를 사용해보십시오.

+0

응답 해 주셔서 감사합니다. 명확히하기 위해 두 페이지짜리 PDF가 여러 개 있습니다. (워크 시트 1 + 워크 시트 2), (워크 시트 1 + 워크 시트 3), (워크 시트 1 + 워크 시트 4) 등 – Andrew

+0

일반 방향의 슈퍼 빠른 전환, 루프 내에서 워크 시트 1 + 현재 워크 시트를 선택한 다음 내보내기를 시도하십시오. 내 머리 꼭대기를 기억할 수는 없지만, 아마도'selected.worksheets .. With Worksheet1 ...' – gwhenning

0

가. 그것은 내내 얼굴을 쳐다보고있었습니다. 선택 항목을 포함하도록 코드를 수정하고 두 번째 워크 시트 ws.Name의 이름을 지정했습니다. 최종 스크립트는 다음과 같습니다.

Option Explicit 

    Sub createPDFfiles() 
    Dim ws As Worksheet 
    Dim Fname As String 
    For Each ws In ActiveWorkbook.Worksheets 
     On Error Resume Next 

     Fname = "C:\Folder\" & ws.Name & "Report" & Format(Date, "yyyy-mm-dd") & ".pdf" 

     Sheets(Array("Sheet1", ws.Name)).Select 

    ActiveSheet.ExportAsFixedFormat _ 
      Type:=xlTypePDF, _ 
      Filename:=Fname, _ 
      Quality:=xlQualityStandard, _ 
      IncludeDocProperties:=True, _ 
      IgnorePrintAreas:=False 
    Next ws 
End Sub 

여러분 모두를 도와 주셔서 감사합니다!

관련 문제