2015-03-15 8 views
1

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

Save multiple sheets to .pdf

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

Я выбрал

ThisWorkbook.Sheets(Array("GIT 100", "GIT 399", "CheckList GIT 400", "TCCC", "4.1")).Select 

Но я получил "4,1", "CheckList GIT 400", "GIT 399", "ККК", "GIT 100" в опубликованном документе.

Любая помощь будет высоко оценена.

ответ

1

Просто петля:

Sub Kakeda() 
    ary = Array("GIT 100", "GIT 399", "CheckList GIT 400", "TCCC", "4.1") 
    For Each a In ary 
     Sheets(a).ExportAsFixedFormat Type:=xlTypePDF 
    Next a 
End Sub 

EDIT # 1:

Эта версия сохранит .pdf файлы по отдельности:

Option Explicit 

Sub Kakeda() 
    Dim ary 
    Dim a As Variant, fp As String 
    ary = Array("GIT 100", "GIT 399", "CheckList GIT 400", "TCCC", "4.1") 
    fp = ActiveWorkbook.Path 
    For Each a In ary 
     Sheets(a).ExportAsFixedFormat Type:=xlTypePDF, Filename:=fp & "\" & a & ".pdf" 
    Next a 
End Sub 

EDIT # 2:

Эта версия будет создать один PDF

Option Explicit 

Sub Kakeda3_TheSequel() 
    Dim ary 
    Dim a As Variant, fp As String 
    ary = Array("GIT 100", "GIT 399", "CheckList GIT 400", "TCCC", "4.1") 
    fp = ActiveWorkbook.Path 

    For Each a In ary 
     Sheets(a).Move after:=Sheets(Sheets.Count) 
    Next a 

    ThisWorkbook.Sheets(ary).Select 
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF 
End Sub 
+0

Это не работает, его высказывание ошибки несоответствия типа – Kakeda

+0

эй спасибо за код выше, но можно ли его опубликовать как один документ? – Kakeda

+0

@Kakeda Посмотреть мой ** РЕДАКТИРОВАТЬ # 2 ** –

0

Я думаю, что это зависит от порядка листа, сделайте заказ на лист, как вы хотите печатать (последовательно), который будет работать.

+1

Я знаю, но по какой-то другой причине, я не хочу, чтобы переместить листы – Kakeda

+0

, то вы должны создать кусок кода, чтобы сделать листы для печати порядке и после печати сделать заказ, как это было до ... – Arya

Смежные вопросы