Опробовал макрос, все норм. НО вылезла проблема - на листе получилось по 3 странички.
Всё книгу нужно распечатать двухсторонней печатью. Так вот новая страничка нового листа печатается на оборотной стороне, где напечаталась последняя страничка предыдущего листа.
Можно как то это победить?
Опробовал макрос, все норм. НО вылезла проблема - на листе получилось по 3 странички.
Всё книгу нужно распечатать двухсторонней печатью. Так вот новая страничка нового листа печатается на оборотной стороне, где напечаталась последняя страничка предыдущего листа.
Sub Вставить_разрывы() Dim sh As Worksheet Dim FoundStr As Range Dim FAdr As String, r& Application.ScreenUpdating = False For Each sh In Worksheets With sh .PageSetup.PrintArea = "$A:$HC" .ResetAllPageBreaks .PageSetup.Zoom = False .PageSetup.FitToPagesWide = 1 .PageSetup.FitToPagesTall = False Set FoundStr = .Columns("GE:HC").Find("новая страничка", , xlValues, xlWhole) If Not FoundStr Is Nothing Then FAdr = FoundStr.Address Do Set FoundStr = .Columns("GE:HC").FindNext(FoundStr) .HPageBreaks.Add Before:=sh.Rows(FoundStr.Row) Loop While FoundStr.Address <> FAdr End If If .HPageBreaks.Count Mod 2 = 0 Then r = .UsedRange.Row + .UsedRange.Rows.Count .Cells(r, 1) = "." .Cells(r, 1).NumberFormat = ";;;" .HPageBreaks.Add Before:=.Cells(r, 1) End If End With Next End Sub
[/vba]
[vba]
Код
Sub Вставить_разрывы() Dim sh As Worksheet Dim FoundStr As Range Dim FAdr As String, r& Application.ScreenUpdating = False For Each sh In Worksheets With sh .PageSetup.PrintArea = "$A:$HC" .ResetAllPageBreaks .PageSetup.Zoom = False .PageSetup.FitToPagesWide = 1 .PageSetup.FitToPagesTall = False Set FoundStr = .Columns("GE:HC").Find("новая страничка", , xlValues, xlWhole) If Not FoundStr Is Nothing Then FAdr = FoundStr.Address Do Set FoundStr = .Columns("GE:HC").FindNext(FoundStr) .HPageBreaks.Add Before:=sh.Rows(FoundStr.Row) Loop While FoundStr.Address <> FAdr End If If .HPageBreaks.Count Mod 2 = 0 Then r = .UsedRange.Row + .UsedRange.Rows.Count .Cells(r, 1) = "." .Cells(r, 1).NumberFormat = ";;;" .HPageBreaks.Add Before:=.Cells(r, 1) End If End With Next End Sub
Может собрать все листы на один сводный, расставить разрывы и печатать его?
Запутаться можно, много страниц, большая вероятность что на одном листе с двух сторон разные карточки напечатаются.
Сделаю так - макросом вашим разрывы расставлю - потом макросом в pdf каждый лист экспортирую. Хочу чтоб название pdf файла бралось из определенной ячейки экспортируемого листа.
Может собрать все листы на один сводный, расставить разрывы и печатать его?
Запутаться можно, много страниц, большая вероятность что на одном листе с двух сторон разные карточки напечатаются.
Сделаю так - макросом вашим разрывы расставлю - потом макросом в pdf каждый лист экспортирую. Хочу чтоб название pdf файла бралось из определенной ячейки экспортируемого листа.
У меня нет духстороннего принтера, чтобы проверить ваше утверждение, но, похоже, вы мой код даже не пытались запустить. А ежели пытались, то что не получается?
У меня нет духстороннего принтера, чтобы проверить ваше утверждение, но, похоже, вы мой код даже не пытались запустить. А ежели пытались, то что не получается?RAN
Спасибо, код я пробовал. Он добавляет нужную 4-ю страничку. Но проблема в том, что некоторые карточки получаются на 4 листа, и при выполнении макроса получается 5 листов этой карточки. То есть опять друг на друге печатаются.
p/s Спасибо. Проблему уже решил. Экспорт всех листов в отдельный pdf . Потом массовая печать этих pdf файлов.
Спасибо, код я пробовал. Он добавляет нужную 4-ю страничку. Но проблема в том, что некоторые карточки получаются на 4 листа, и при выполнении макроса получается 5 листов этой карточки. То есть опять друг на друге печатаются.
p/s Спасибо. Проблему уже решил. Экспорт всех листов в отдельный pdf . Потом массовая печать этих pdf файлов.minister