2014-10-13 8 views
6

하나의 PDF에 4 개의 시트를 저장하려고합니다. 아래 코드는 제가 지금까지 가지고있는 것입니다. 파일 이름에 ActiveSheet.Name 명령을 사용하면 작동하지만 동적 인 셀 범위로 변경하면 더 이상 작동하지 않으며 오류가 발생합니다. 어떤 도움을 주시면 감사하겠습니다.VBA 파일 이름으로 셀 값으로 저장

Sheets(Array("Dashboard Pg 1", "Dashboard Pg 2", "Dashboard Pg 3", _ 
    "Dashboard Pg 4")).Select 
Sheets("Dashboard Pg 1").Activate 
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
    "C:\Users\Allen\Desktop\Projects\" & ActiveSheet.Range("K17").Value & ".pdf" _ 
    , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _ 
    :=False, OpenAfterPublish:=False 
Sheets("Summary").Select 
+0

K17의 평가 가치는 무엇입니까? 값에 파일 이름에 적합한 문자가 아닌 문자가 포함될 수 있습니까? – bernie

+0

파일 이름 ('Filename : = "C : \ Users \ Allen \ Desktop \ Projects \"및 ActiveSheet.Range ("K17") .Value & ".pdf"')의 끝에 ".pdf"를 추가 하시겠습니까? – PatricK

+0

.pdf가 추가되지 않아서 도움이되지 않았습니다. 그것은 여전히 ​​나를 실행하는 디버그 묻습니다 – Allen

답변

9

이 시도 :

Dim strFilename  As String 
Dim rngRange  As Range 

'Considering Sheet1 to be where you need to pick file name 
Set rngRange = Worksheets("Sheet1").Range("K17") 

'Create File name with dateStamp 
strFilename = rngRange.Value & Format(Now(), "yyyymmdd hhmmss") 

Sheets(Array("Dashboard Pg 1", "Dashboard Pg 2", "Dashboard Pg 3", "Dashboard Pg 4")).Select 
Sheets("Dashboard Pg 1").Activate 
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
    "C:\Users\Allen\Desktop\Projects\" & strFilename & ".pdf" _ 
    , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _ 
    :=False, OpenAfterPublish:=False 

Sheets("Summary").Select 
+0

완벽하게 작동합니다. 당신이했던 것처럼 범위를 정하는 것은 문제를 해결하는 것이 었습니다. 모두의 도움과 반응에 감사드립니다. 또한 지프 (Jeeped), 세포의 폭을 언급 해 주셔서 감사합니다. – Allen

+0

2 년 후이 답변은 나 자신의 VBA 질문으로 나를 도왔다 :) 감사합니다 – mmenschig

+0

3 년 2 개월이 답변은 제가 직면 한 섬세한 VBA 문제를 해결하는 데 도움이되었고 다른 곳에서는 해결책을 찾을 수 없었습니다. 거의 수정하지 않고, voilà! 다들 감사 해요 ! –

관련 문제