2015-10-14 2 views
0

Я довольно зеленый с использованием VBA, и это первый раз, когда я опубликовал вопрос на этом форуме, так что несите меня, если я нарушаю правила публикации.Сохраните несколько рабочих листов в формате PDF

Ниже приведен фрагмент кода, который используется для печати/сохранения 1 или более листов из книги Excel в PDF. Он отлично работает, если данные из каждого листа, который я экспортирую, помещаются на одну страницу. Проблема, которую я нахожу, состоит в том, что если диапазон данных с моего первого листа больше 1 страницы, тогда будет экспортироваться только 1-й рабочий лист и только до первого разрыва страницы. Любые советы или предложения о том, как я могу решить эту проблему?

'Ask user if report needs to be saved as a pdf 
PdfCheck = MsgBox("Save report as PDF", vbYesNo, "Save PDF") 
'use result of <PdfCheck> to control if statement 
If PdfCheck = vbYes Then 
    Pdfsheets = InputBox("How many worksheets would you like to include in PDF") 

    'Prints the number of sheets entered by user 
    'starts at first ACTIVE Worksheet to the result of <Pdfsheets> 
    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _ 
    "C:\Users\" & WinName & "\Documents\REPORTING\" & Database & "\" & _ 
    ReportYear & "\" & FolderMonth & "\" & Database & "-" & Title & "-" & FileDate _ 
    , Quality:=xlQualityStandard, IncludeDocProperties:=False, _ 
    IgnorePrintAreas:=False, From:=1, To:=Pdfsheets, OpenAfterPublish:=True 
Else 
    GoTo X 
End If 
X: 
End Sub 
+1

* просто примечание стороны: * не нужно для 'Else GoTo X' и' X: 'в этом коде, так как' If ... End If' является достаточным. –

+0

удалите 'From: = 1, To: = Pdfsheets,' - зачем ограничивать, какие страницы печатаются? – SeanC

+1

Я думаю, вам может понадобиться использовать 'ExportAsFixedFormat' для каждого листа. Поэтому, если пользователи хотят напечатать 2 листа, при условии, что они являются листами 1 и 2, вы можете написать «Worksheets (Array (1,2)). Выберите ActiveSheet.ExportAsFixedFormat ....' Не уверен, что это ответ, но он хотел предоставить возможность. –

ответ

0

Метод, который я использую, состоит в том, чтобы прокручивать рабочие листы внутри книги и выбирать те, которые соответствуют моим критериям. Затем я использую ExportAsFixedFormat для создания моего pdf-файла. Обратите внимание, что вы не можете выбрать скрытые листы, поэтому, если в книге есть их, вам нужно будет добавить if/then, чтобы проверить видимость.

+0

Благодаря Jess-eye-ca ... петля For сделала трюк. –

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