Я пытаюсь написать небольшую функцию, которая принимает путь к файлу (в котором была сохранена книга), целевой путь (где будет сохранен PDF-файл) и строку имен вкладок (канал (| ) с разделителями) в excel.
Пользователь функции не должен вводить строку с названиями вкладок (это необязательно), и если они этого не сделают, я хочу выбрать все видимые вкладки и распечатать их. Это было бы в том случае, если бы пользователь имел 50 диаграмм на отдельных листах и не хотел писать строку типа «Chart1 | Chart2 | ....»
Код:
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
Есть две проблемы с For Each цикл: он не захватывает такие листы, как «Chart1», а только захватывает такие листы, как «Sheet1». Кроме того, он будет захватывать скрытые листы, поэтому, когда я пытаюсь выбрать их все, я получаю ошибку за пределами границ.
Я не знал, упоминается ли лист диаграммы иначе, чем обычный лист, или почему также выбираются скрытые листы.