2016-03-22 6 views
0

У меня есть 4 листа, например «Лист1», «Лист2», «Лист3» и «Лист4».Экспорт нескольких рабочих листов в PDF без выбора

Для моего PDF, я хочу, чтобы экспортировать содержимое Лист3 и Лист4, поэтому будут сгруппированы в массив, как:

Sheets(Array("Sheet3", "Sheet4")); 

Сейчас, как правило, экспортировать в PDF, я бы выбрал это, то имеют

ActiveSheet.ExportAsFixedFormat _ 
Type:=xlTypePDF, _ 
Filename:= _ 
"C:\filename.pdf", _ 
Quality:= xlQualityStandard, _ 
IncludeDocProperties:=True, _ 
IgnorePrintAreas:=False, _ 
OpenAfterPublish:=False 

Однако, я хочу, чтобы этот макрос работал полностью в фоновом режиме. Если бы я смотрел на Sheet1 и запускал этот макрос, он переместился бы на Sheet3, потому что он выбирается, что подрывает рабочий процесс.

Я знаю, как сделать это для основных операций, таких как FillCell Объявив переменные:

Dim wb As Workbook 
Dim ws As Worksheet 
Set wb = ThisWorkbook 
Set ws = wb.Sheets("Sheet2") 
' modify ws 

, так как это работает за кулисами.

Таким образом, я хотел бы экспортировать несколько рабочих листов (не все) в PDF без необходимости использовать Select, Activate или аналогичный, который изменит представление рабочей книги/рабочего листа, в котором я сейчас просматриваю.

+0

Вы пытались просто вызвать table3.ExportAsFixedFormat? –

+1

Дубликат [Использовать метод на нескольких листах одновременно без использования ActiveSheet или Select] (http://stackoverflow.com/q/22796286/4088852). – Comintern

+0

@Comintern, это сработало хорошо. ура – mojo1mojo2

ответ

-1

Это должно сделать трюк.

Sheets("Sheet 1").ExportAsFixedFormat _ 
Type:=xlTypePDF, _ 
Filename:= _ 
"C:\filename.pdf", _ 
Quality:= xlQualityStandard, _ 
IncludeDocProperties:=True, _ 
IgnorePrintAreas:=False, _ 
OpenAfterPublish:=False 
Смежные вопросы