Следующая подпрограмма предназначена для подготовки страницы для вывода в формате PDF. Например, если из-за других подключенных принтеров перепутались страничные тормоза, сабвуфер должен исправить их обратно до 1 страницы в ширину и 3 страниц в высоту.
Sub adjustPB(ws As Variant, ps As XlPaperSize)
'On Error Resume Next
Application.DisplayAlerts = False
Application.PrintCommunication = False
With ws.PageSetup
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0)
.BottomMargin = Application.InchesToPoints(0)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
.Orientation = xlLandscape
'.Orientation = xlPortrait
.PaperSize = ps
.Zoom = 100
.Zoom = False
Debug.Print .Zoom
.FitToPagesWide = 1
Debug.Print .Zoom
Debug.Print .FitToPagesWide
.FitToPagesTall = 3
End With
Application.DisplayAlerts = True
Application.PrintCommunication = True
End Sub
Подпрограмма на самом деле работает, как и ожидалось, в одном шаге (F8), когда я добавляю точку останова в «With ws.PateSetup». Однако, если я запускаю его с помощью F5, он игнорирует операторы. Отладочные отпечатки показывают, что значения свойств не изменились.
До сих пор пробовали: добавляйте задержки перед .zoom и .FitPagesWide с DoEvents до 1 секунды. Без изменений. Масштаб, например, остается равным 55. В одношаговом режиме масштабирование в конце читается как ЛОЖЬ. Любые объяснения/подсказки, что здесь происходит не так?