Экспорт нескольких листов в PDF одновременно без использования ActiveSheet или Select
Это было просверлено в моей голове, чтобы избежать ошибок и обеспечить хороший пользовательский опыт, лучше избегать использования.Select
, .Activate
, ActiveSheet
,ActiveCell
, так далее.
Имея это в виду, есть ли способ использовать.ExportAsFixedFormat
метод на подмножествеSheets
в книге без использования одного из вышеперечисленных? Пока что я смог придумать только один способ:
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: объект не поддерживает это свойство или метод