Она была пробурена в голову, чтобы избежать ошибок и обеспечить хороший опыт пользователя, то лучше избегать использования .Select, .Activate, ActiveSheet, ActiveCell и т.д.
Имея это в виду, есть ли способ использовать метод .ExportAsFixedFormat для подмножества Sheets в рабочей .ExportAsFixedFormat без использования одного из перечисленных выше? Пока что я смог придумать только один способ:
- использовать
For Each; однако это приводит к отдельным PDF файлам, что не годится. -
использовать код, подобный тому, что генерируется записи макросов, который использует
.SelectиActiveSheet:Sheets(Array("Sheet1", "Chart1", "Sheet2", "Chart2")).Select ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "exported file.pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, openafterpublish:= True
Возможно, невозможно не использовать ActiveSheet, но я могу, по крайней мере, обойти использование .Select как-нибудь?
Я попробовал это:
Sheets(Array("Sheet1", "Chart1", "Sheet2","Chart2")).ExportAsFixedFormatType:= _
xlTypePDF, Filename:= "exported file.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, openafterpublish:= _
True
Это производит:
ошибка 438: объект не поддерживает это свойство или метод