VBA Обратитесь к листу таблицы и диаграммы

Я пытаюсь написать небольшую функцию, которая принимает путь к файлу (в котором была сохранена книга), целевой путь (где будет сохранен 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». Кроме того, он будет захватывать скрытые листы, поэтому, когда я пытаюсь выбрать их все, я получаю ошибку за пределами границ.

Я не знал, упоминается ли лист диаграммы иначе, чем обычный лист, или почему также выбираются скрытые листы.

6
задан Danubian Sailor 20 July 2013 в 21:46
поделиться