Sub exportSomeSheetsTo1Pdf()
Dim mySheets As Sheets
Dim SaveToPath As String
Set mySheets = Worksheets(Array("Sheet1", "Sheet2")) ' to be changed
filenameSave = "C:\test\myfile.pdf" ' to be changed
With ConsolidationSheet(mySheets, "")
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=filenameSave, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
Application.DisplayAlerts = False
.Delete
Application.DisplayAlerts = True
End With
End Sub
Function ConsolidationSheet(mySheets As Sheets, Optional SheetHeader As Variant) As Worksheet
Dim tempSheet As Worksheet
Dim StartNewSheetRow As Long, StartNewSheetCell As Range
Dim i As Long
With mySheets(1).Parent
Set tempSheet = .Worksheets.Add(Before:=.Sheets(1))
End With
For i = 1 To mySheets.Count
StartNewSheetRow = ReallyUsedRange(tempSheet).Rows.Count + 1
Set StartNewSheetCell = tempSheet.Cells(StartNewSheetRow, 1)
Select Case TypeName(SheetHeader)
Case "String"
If SheetHeader = vbNullString Then
tempSheet.Cells(StartNewSheetRow, 1).Value = mySheets(i).Name
Else
tempSheet.Cells(StartNewSheetRow, 1).Value = SheetHeader
End If
Case "Range"
tempSheet.Cells(StartNewSheetRow, 1).Value = mySheets(i).Range(SheetHeader.Cells(1, 1).Address).Text
End Select
StartNewSheetRow = ReallyUsedRange(tempSheet).Rows.Count + 1
ReallyUsedRange(mySheets(i)).Copy Destination:=tempSheet.Cells(StartNewSheetRow, 1)
tempSheet.HPageBreaks.Add Before:=StartNewSheetCell
Next i
tempSheet.Rows(1).Delete
Set ConsolidationSheet = tempSheet
End Function
Bookmarks