Всем чмоки в этом чатике Для экономии бумаги программно меняю ориентацию с альбомной на портретную и обратно. В портретной выходит 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 пробовал. Подскажите, куда копать?
Лузер™, Не создавайте новое сообщение для добавления файла, добавьте в первое сообщение, временные трудности на сайте, в новое сообщение не добавляется, только в существующее
После конца очередного квартала с появлением новых актов сверки вернулся к этой задаче. sokol92, Спасибо! Помогло. Кто бы мог подумать, что отображение разрывов (хотя они и так были видны в оригинальном файле) может влиять на подсчет страниц.
написал: Кто бы мог подумать, что отображение разрывов
древняя история. Отображение разрывов заставляет VBA пересчитать кол-во печатных страниц. Если не выставлять разрывы - кол-во печатных страниц может быть не пересчитано до тех пор, пока не завершится код.