Всем чмоки в этом чатике
Для экономии бумаги программно меняю ориентацию с альбомной на портретную и обратно. В портретной выходит 1 страница на печать, в альбомной - 2.
Желательно печатать в альбомной, если одна страница, если их две - портрет.
Код |
---|
Sub pbreaks()
Dim sh As Worksheet
Set sh = Workbooks.Open("D:\АктСверки № 336 от 31-03-2022.xls", False, False).ActiveSheet
yyy = sh.VPageBreaks.Count
zzz = sh.HPageBreaks.Count
xxx = sh.PageSetup.Pages.Count
uuu = countp(sh.Name)
With sh.PageSetup
.Orientation = xlLandscape
.FitToPagesWide = 1
End With
yyy = sh.VPageBreaks.Count
zzz = sh.HPageBreaks.Count
xxx = sh.PageSetup.Pages.Count
uuu = countp(sh.Name)
sh.Parent.Close False
End Sub
Public Function countp(Tabx As String) As Long
countp = ExecuteExcel4Macro("Get.Document(50,""" & Tabx & """)")
End Function
|
Ни одна из величин xxx, yyy, zzz, uuu не меняется после поворота в xlLandscape. Если сделать превью печати или Файл - Печать, то величины обновляются.
Application.PrintCommunication = False/True пробовал, принудительный пересчет Application.Calculate пробовал.
Подскажите, куда копать?