Извинения за любые ошибки форматирования в сообщении, но это первый раз, когда я использовал сайт, и я не совсем понимаю инструкции форматирования fquestion.Excel - Экспорт нескольких листов в .pdf через код VBA
Я видел этот вопрос на борту, но это не совсем ответ на мой вопрос, но это может быть полезным для всех, кто хочет помочь - excel vba not exporting pagesetup to pdf correctly
Я имею точно такую же проблему указанных диапазонов в каждом лист не экспортируются при использовании кода для создания вывода .pdf. То, что экспортируется, - это все, что есть на каждом листе, так что каждый рабочий лист распространяется на 2 или более страниц. Диапазоны печати для каждого листа настроены для печати указанной области на 1 лист.
Я попытался адаптировать код по ссылке выше, но он не работает с несколькими листами.
код Я пытаюсь использовать в неприспособленной форме ниже
Sub ClientPDFOutput()
If Sheets("File Data").Range("FD_FileName") = "" Then
' MsgBox ("Save the file before exporting to a .pdf fomrat"), vbInformation, "Save File"
' Exit Sub
Else
End If
ActiveSheet.Unprotect Password:=strPassword
Range("UI_Status") = "Creating client PDF output - Please wait"
SelectSheets
Application.ScreenUpdating = False
Sheets(arrSheets).Select
strFilename = "Test"
Selection.ExportAsFixedFormat _
Type:=xlTypePDF, _
filename:=ActiveWorkbook.Path & "\" & strFilename & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=True, _
OpenAfterPublish:=False
Sheets("User Input").Select
Range("UI_Status") = "Client .pdf output created and saved"
ActiveSheet.Protect Password:=strPassword
Application.ScreenUpdating = True
MsgBox ("The client output in .pdf format has been created and saved"), vbInformation, ".pdf Created"
End Sub
И
Sub SelectSheets()
Dim rngSheets As Range
Set rngSheets = Sheets("File Data").Range("D_OutputSheets")
If rngSheets.Count = 1 Then
arrSheets = rngSheets.Value2
Else
arrSheets = Application.Transpose(rngSheets.Value2)
End If
End Sub
ТИА
После немного больше экспериментировать, я установил, что мой диапазоны печати на каждом страниц было так исправлено.
Я также добавил в некоторый код, чтобы выбрать диапазон печати каждого листа, прежде чем все они будут выбраны как часть массива листов, но диапазон печати в 1-м листе массива дублируется по всему листу ... поэтому, если диапазон в листе 1 является диапазоном B4: P61 и листа 2, это B4: M48, на листе 2 выбран B4: P61, когда выбран массив листов.
Затем выдает выбранные диапазоны, которые соответствуют листу 1, но не соответствуют остальным листам.
Когда я делаю это вручную, выбирая все листы, «Файл», «Экспорт», все диапазоны печати листов экспортируются, поэтому, когда это записывается и помещается в рутину, его игнорируют?
Благодаря