Estoy intentando escribir una pequeña función que toma una ruta de archivo (donde se guardó el libro), ruta de destino (donde se guardará el pdf) y una cadena de nombres de pestaña (tubería (|) delimitada) en excel.VBA Consulte la hoja de cálculo frente a la hoja de gráfico
El usuario de la función no tiene que ingresar una cadena de nombres de pestañas (es opcional) y si no lo hacen, quiero seleccionar todas las pestañas visibles e imprimirlas. Este sería el caso si el usuario tiene 50 gráficos en hojas de cálculo independientes y no quiere escribir una cadena como "Gráfico1 | Gráfico2 | ...."
Código:
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
Hay dos problemas con el bucle For Each: no capta ninguna hoja como "Chart1", solo capta hojas como "Sheet1". Además, tomará hojas ocultas para que cuando intente seleccionarlas obtenga un error fuera de límites.
No sabía si se hace referencia a una hoja de gráfico de forma diferente a una hoja normal o por qué también se eligen hojas ocultas.
Por supuesto, '' ActiveWorkbook.Sheets' incluye tanto ActiveWorkbook.Worksheets' y 'ActiveWorkbook.Charts'. –