Она была пробурена в голову, чтобы избежать ошибок и обеспечить хороший опыт пользователя, то лучше избегать использования .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: объект не поддерживает это свойство или метод