#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