Sto provando a scrivere una piccola funzione che accetta un percorso file (in cui è stata salvata la cartella di lavoro), targetpath (dove verrà salvato il pdf) e una stringa di nomi di schede (pipe (|) delimitato) in Excel.VBA Fare riferimento a foglio di lavoro o foglio grafico
L'utente della funzione non deve immettere una stringa di nomi di schede (è facoltativo) e in caso contrario, desidero selezionare tutte le schede visibili e stamparle. Questo sarebbe nel caso in cui l'utente ha 50 grafici in fogli di lavoro separati e non si vuole scrivere una stringa come "Chart1 | Chart2 | ...."
Codice:
For Each WSO.Name In WBO.Worksheets
strSheets = strSheets & WSO.Name & "|"
Next WSO
strSheets = Left(strSheets, Len(strSheets) - 1)
arraySheets() = Split(strSheets, "|")
WBO.Sheets(arraySheets()).Select
WBO.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
strFilePath, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
Ce ne sono due problemi con il ciclo For Each: non preleva nessun foglio come "Chart1", prende solo fogli come "Sheet1". Inoltre, prenderà i fogli nascosti in modo che quando provo a selezionarli tutti ottengo un errore di fuori limite.
Non sapevo se un foglio grafico si riferisce a un foglio normale o perché vengono scelti anche fogli nascosti.
Naturalmente, 'ActiveWorkbook.Sheets' comprende sia' 'ActiveWorkbook.Worksheets' e ActiveWorkbook.Charts'. –