Печать в формате PDF и подгонка строк на одной странице

#excel #vba

#excel #vba

Вопрос:

Следующий код работает некорректно. Я пытаюсь распечатать в формате PDF и уместить все строки на одной странице. Есть предложения?

  For Each sheet1 In ActiveWorkbook.Worksheets
                With sheet1.PageSetup
                    .Orientation = xlLandscape
                    .Zoom = False
                    .FitToPagesTall = False
                    .FitToPagesWide = 1
                End With
            Next sheet1
            
            
         
         worbook1.ExportAsFixedFormat Type:=xlTypePDF, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=False
         
  

Комментарии:

1. Разве это не так .FitToPagesTall ? У вас есть значение false.

Ответ №1:

Чтобы поместить ваш рабочий лист на одну страницу для печати, вам нужно будет установить как FitToPagesTall, так и FitToPageWide равными 1.

Пересмотренный код см. Ниже:

 For Each sheet1 In ActiveWorkbook.Worksheets
                With sheet1.PageSetup
                    .Orientation = xlLandscape
                    .Zoom = False
                    .FitToPagesTall = 1
                    .FitToPagesWide = 1
                End With
            Next sheet1
            
worbook1.ExportAsFixedFormat Type:=xlTypePDF, Quality:=xlQualityStandard,_
IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=False
  

Ответ №2:

Я установил оба.FitToPagesTall = 1 и .FitToPagesWide = 1 и попытался выполнить его в образце файла Excel. Похоже, это работает неправильно. Ниже приведены ссылки на файл Excel и PDF-файлы, созданные при печати вручную с помощью функции Excel «Печать-подгонка всех строк на одной странице» и функции, созданной VBA.

https://drive.google.com/file/d/1ohtP5VWz6_HnVVPYvcBnYlIciFKF3KlQ/view?usp=sharing

https://drive.google.com/file/d/1R0e8GBRFt9awFJgtD4VHhtV5ZVyUAA0s/view?usp=sharing

https://drive.google.com/file/d/1u851GmelwRX2_k1T5HgpFcQ1Hy2BLl4F/view?usp=sharing