Есть ли способ PDF-таблицы в Excel между двумя заданными c вкладками с помощью VBA? - PullRequest
0 голосов
/ 09 января 2020

Пытаясь выяснить, выполнимо ли это, я знаю, как PDF указать c рабочие листы Excel через VBA, но возможно ли PDF-файл ряда рабочих листов, указав начальные и конечные рабочие листы? Таким образом, если в рабочей книге 10 листов, от Sheet1 до Sheet10, могу ли я PDF-документы между Sheet1 и Sheet10 без указания каждого листа? Спасибо.

Ответы [ 3 ]

0 голосов
/ 09 января 2020

Возможно, вы захотите попробовать сделать что-то подобное. Это будет l oop и создаст все листы в один pdf. Это также запишет их в каталог на вашем рабочем столе.

Sub createPdf()

Dim SheetArr() As String
Dim i As Integer
Dim startSheet As Integer
Dim endSheet As Integer

startSheet = 1
endSheet = 2
Dim folderPath As String
folderPath = "C:\Users\JMA337\Desktop\Pdfs" 'change to your user.
MkDir (folderPath)

For Each ws In ThisWorkbook.Worksheets 'This statement starts the loop
    If ws.Index >= startSheet And ws.Index <= endSheet Then ' <> "Sheet3" Then
        ReDim Preserve SheetArr(i)
        SheetArr(i) = ws.Name

        i = i + 1
        Debug.Print (ws.Name)

    End If
Next

Sheets(SheetArr).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=folderPath & "\Sales", _
openafterpublish:=False, ignoreprintareas:=False

MsgBox "All done with pdf's"

End Sub
0 голосов
/ 09 января 2020

Если вы пытаетесь получить один PDF из указанных c листов, в вашем коде может иметь смысл создать новую рабочую книгу, а затем скопировать указанные c листы, необходимые для этой новой рабочей книги, а затем использовать Workbook.ExportAsFixedFormat Метод для создания PDF.

По моему личному опыту, пытаясь вручную выполнить то, что вы описываете, Excel действительно хочет, чтобы эти листы были в последовательном порядке, а документация вокруг workbook.exportasfixedformat не предоставляет достаточно подробных сведений о выборе диапазона листов для вашего PDF. , Фактически, это задокументировано так, как будто вы используете Word, где параметры To и From ищут номера страниц для начала и заканчиваются sh. Это очень простой способ обработки раздела документа Word в PDF, но страницы книги Excel гораздо более неоднозначны.

0 голосов
/ 09 января 2020

Похоже, что вам нужно создать все oop.

Если вы хотите просто PDF-файл каждого листа в работе, используйте Для каждого l oop (для каждого шт в workbook.worksheets)

Если вы хотите PDF только определенный диапазон из листов, как только листы с 1 по 10, даже если в рабочей книге 20 листов, создайте переменную al oop (например, intX). Диапазон будет номер листа в PDF. В пределах l oop назовите каждый лист как «Листы (« Лист »и intX) для его PDF».

Если вы хотите распечатать листы как один PDF, используйте от l oop до l oop и выберите нужные листы, установив для свойства замены значение false

For intX = 1 to 5
    Sheets("Sheet" & intX).Select False
Next intX

Затем вы можете рассматривать выбранные листы как один объект при экспорте в фиксированный формат.

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strFolderPath & "\" & strFileName, Quality:=xlQualityMinimum, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...