2016-09-20 2 views
-1

매크로를 기록했습니다.보이는 시트를 pdf로 저장하고, 숨겨진 시트를 무시하십시오.

모든 시트가 표시되지만 시트를 숨기면 pdf로 저장되지 않습니다.

이것은 코드입니다.

Sub save_pdf() 
' 
' save_pdf Macro 
' 

' 
Sheets(Array("TITLE", "CML", "CLUSTER", "ORS", "MOBILE", "YPS", "DEVICES", "PORTS")).Select 
Sheets("TITLE").Activate 
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, fileName:= _ Sheets("MAIN").Range("customer_name") + " - Project Initiation_ Document.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True,_ IgnorePrintAreas:=False, OpenAfterPublish:=True 

Sheets("MAIN").Select 

End Sub 

답변

0

그것은 인해 .Select의 사용 가능성이 높습니다. 가능한 경우 avoid using .Select으로 연락하겠습니다. 대신, 통합 문서의 각 워크 시트를 순환하도록 루프를 설정하십시오. 당신은 단지 눈에 보이는 시트를 원하는 경우

Sub save_PDFs() 
Dim sht As Worksheet 
For Each sht In ActiveWorkbook.Worksheets 
    sht.ExportAsFixedFormat Type:=xlTypePDF, fileName:=Sheets("MAIN").Range("customer_name") + " - Project Initiation_ Document.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True 
Next sht 
End Sub 

그러나, 다음을 수행하십시오

이 같은
Sub save_PDFs() 
Dim sht As Worksheet 
For Each sht In ActiveWorkbook.Worksheets 
    If sht.Visible = True Then sht.ExportAsFixedFormat Type:=xlTypePDF, fileName:=Sheets("MAIN").Range("customer_name") + " - Project Initiation_ Document.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True 
Next sht 
End Sub 
+1

영업 이익은 하나의 PDF로 시트를 수출하고자하는 -은' 선택 '이 필요합니다. –

+0

@TimWilliams - 오, 정말요? 그것은'.Select'가 필요한 첫 번째 것입니다 (기억할 수 있습니다). 어떻게'sht.Select'를 추가하고'sht.ExportAs ... '를'ActiveSheet.ExportAs ...'로 대체 할 수 없습니까? 그것도 나를 위해 오류를 throw합니다. – BruceWayne

+0

@TimWilliams - 'Workbook.ExportAsFixedFormat'은 숨겨진 시트를 건너 뜁니다 (적어도 2013 년). [이 답변] (https://stackoverflow.com/a/36107539/4088852)을 참조하십시오. – Comintern

1

뭔가 :

Sub ExportVisible() 
    Dim shts, sht As Worksheet, s, i As Long 


    shts = Array("TITLE", "CML", "CLUSTER", "ORS", "MOBILE", "YPS", "DEVICES", "PORTS") 
    i = 0 

    For Each s In shts 
     Set sht = ActiveWorkbook.Sheets(s) 
     If sht.Visible = xlSheetVisible Then 
      i = i + 1 
      sht.Select (i = 1) '"replace" parameter true when i=1 
     End If 
    Next s 

    'Sheets("TITLE").Activate '<<EDIT: remove this 

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ 
        Filename:=Sheets("MAIN").Range("customer_name").Value & _ 
        " - Project Initiation_Document.pdf ", _ 
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _ 
        IgnorePrintAreas:=False, OpenAfterPublish:=True 

End Sub 
+0

감사합니다.하지만 제목 페이지 만 저장하면됩니다. – RHON

+0

시트 ("TITLE")를 주석 처리하십시오. 라인 활성화 –

+0

죄송합니다. 저는이 분야의 초보자입니다. "시트 ("제목 ")에 주석을 달았습니다."활성화 하시겠습니까? " – RHON

관련 문제