2014-10-13 19 views
6

Sto cercando di salvare quattro fogli in un unico PDF. Il codice qui sotto è quello che ho finora. Quando uso il comando ActiveSheet.Name nel nome del file funziona, tuttavia quando lo cambio in un intervallo per una cella che è dinamico, non funziona più e si verifica errori. Qualsiasi aiuto sarebbe apprezzato.VBA Salva come PDF con Nome file come Valore cella

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

Qual è il valore valutato di K17? È possibile che il valore includa caratteri che non sono caratteri legali per un nome file? – bernie

+0

Aggiungi ".pdf" alla fine del nome file ('Nome file: =" C: \ Users \ Allen \ Desktop \ Projects \ "& ActiveSheet.Range (" K17 "). Value &" .pdf "')? – PatricK

+0

Nessun aggiunta .pdf non ha aiutato neanche. Mi chiede ancora di eseguire il debug durante l'esecuzione di – Allen

risposta

9

Prova questo:

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

Grazie, ha funzionato perfettamente. Impostare l'intervallo come hai fatto è stato ciò che ha risolto il problema. Apprezzo l'aiuto e le risposte di tutti. Inoltre, Jeeped, grazie per aver menzionato la larghezza della cella in quanto era necessario. – Allen

+0

Due anni più tardi questa risposta mi ha aiutato con la mia domanda VBA :) Grazie – mmenschig

+0

Tre anni e due mesi dopo questa risposta mi ha aiutato a risolvere un delicato problema VBA che ho affrontato e che non ho potuto trovare una soluzione da nessun'altra parte. Con pochissime modifiche, voilà! Grazie a tutti ! –

Problemi correlati