Я отвечу ужасным, нарисованным рукой комиком. Второе изображение является причиной того, что result
является undefined
в вашем примере кода.
Начните с выбора листов, которые вы хотите объединить:
ThisWorkbook.Sheets(Array("Sheet1", "Sheet2")).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\tempo.pdf", Quality:= xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
Я рекомендую добавить следующую строку после экспорта в PDF:
ThisWorkbook.Sheets("Sheet1").Select
(где, например, Sheet1
- это единственный лист, который вы хотите активировать впоследствии)
Если оставить несколько листов в выбранном состоянии, могут возникнуть проблемы с выполнением некоторого кода. (например, unprotect не работает должным образом при активном выборе нескольких листов.)
В Excel 2013 просто выберите несколько листов и выполните «Сохранить как» и выберите PDF в качестве типа файла. Несколько страниц откроются в PDF, когда вы нажмете «Сохранить».
Как и ответ Тима, но с проверкой на 2007 год (где экспорт по умолчанию не установлен по умолчанию):
Public Sub subCreatePDF() If Not IsPDFLibraryInstalled Then 'Better show this as a userform with a proper link: MsgBox "Please install the Addin to export to PDF. You can find it at http://www.microsoft.com/downloads/details.aspx?familyid=4d951911-3e7e-4ae6-b059-a2e79ed87041". Exit Sub End If ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ Filename:=ActiveWorkbook.Path & Application.PathSeparator & _ ActiveSheet.Name & " für " & Range("SelectedName").Value & ".pdf", _ Quality:=xlQualityStandard, IncludeDocProperties:=True, _ IgnorePrintAreas:=False, OpenAfterPublish:=True End Sub Private Function IsPDFLibraryInstalled() As Boolean 'Credits go to Ron DeBruin (http://www.rondebruin.nl/pdf.htm) IsPDFLibraryInstalled = _ (Dir(Environ("commonprogramfiles") & _ "\Microsoft Shared\OFFICE" & _ Format(Val(Application.Version), "00") & _ "\EXP_PDF.DLL") <> "") End Function