#excel #vba #pdf
Вопрос:
Я хотел бы создать PDF-файл из нескольких диапазонов на разных страницах.
Например:
1-я страница PDF содержит первые 5 столбцов активного листа и столбцы из 6-10. Итак, диапазон A1:E10 amp;amp; F1:J10
2-я страница PDF содержит первые 5 столбцов активного листа и 10-15 столбцов. Итак, диапазон от A1:E10 amp;amp; K1:O10
3-я страница имеет диапазон от A1:E10 amp;amp; P1:T10
И так далее.. код
Private Sub cmdPrintJul_Click()
Dim ws1 As Worksheet, ws2 As Worksheet
Set ws1 = Worksheets("YTD")
ws1.PageSetup.PrintArea = "A1:K48"
Set ws2 = Worksheets("July")
ws2.PageSetup.PrintArea = "A1:G45"
Worksheets(Array(ws1.Name, ws2.Name)).Select
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:="e:savedJuly2016.pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
ws1.Activate
Range("A1").Select
End Sub
Если это происходит на нескольких листах, мне это нужно на одном листе, но объедините несколько диапазонов вместе. Настройка страниц, вероятно, будет выполнена с помощью pageSize, выбрав ту, на которой страница разбивает каждый объединенный диапазон на свою собственную страницу.
Я пытался с:
Dim ws1 As Worksheet, ws2 As Worksheet
Set ws1 = Worksheets("Celo leto 2019")
ws1.PageSetup.printArea = "B2:K39"
Set ws2 = Worksheets("Celo leto 2019")
ws2.PageSetup.printArea = "AQ2:BS39"
Worksheets(Array(ws1.Name, ws2.Name)).Select
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=strPathFile, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
ws1.Activate
Range("A1").Select
Но он экспортирует только диапазон ws2..
Ответ №1:
во втором примере показано, что вы пытаетесь напечатать столбцы заголовков с одного и того же листа. Я предполагаю, что вы хотите, чтобы столбцы от b до k повторялись на каждой странице. (пример один, похоже, состоит из двух листов) попробуйте добавить заголовки столбцов
Dim ws1 As Worksheet
Set ws1 = Worksheets("Celo leto 2019")
With ws1
.PageSetup.PrintTitleColumns = "$b:$k"
.PageSetup.PrintArea = "$aq2:$bs39"
.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=strPathFile, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
End With
ws1.Activate
Range("A1").Select