Страницы: 1
RSS
Незапланированная печать листа
 
Доброго времени суток ,уважаемые форумчане, всех  с прошедшим праздником. Ситуация такая: требуется распечатать 2 бланка на 1 листе. делаю я это самым простым способом: копирую строки, вставляю, далее печать листа и удаление вставленных строк. Код
Код
Private Sub Workbook_BeforePrint(Cancel As Boolean) 'предпечатная подготовка листа "Формы"
'    Dim b As Boolean
    With ActiveSheet
'        If b = False Then
        If .Name = "Форма" Then 'обязательно условие: указание имени листа, иначе VBA пытается выполнить код на др. листах
            Application.EnableEvents = False
            .Rows("1:30").Copy .Range("A33")
            .Rows("31:32").RowHeight = 6.75
            .Range("A31:G31").Borders(xlEdgeBottom).LineStyle = xlDashDot
            .Range("$A$1:$G$62").PrintOut Copies:=1
            .Rows("31:62").Delete
'            b = True
            Application.EnableEvents = True
'        End If
        End If
    End With
End Sub
Все в принципе ОК, но по какой-то причине, после распечатки листа (с 2 копиями) Excel выдает команду на печать еще раз и на печать выходит лист с изначальными данными, т.е. с 1 копией. И флаг пытался применять, и отслеживание событий отключал - ничего не помогает 8-0. Четко видно при пошаговой проверке, что выполнение доходит до End Sub и далее (без каких то ошибок или чего иного) вновь идет команда на печать. Почему так происходит и как это победить?
Заранее спасибо всем откликнувшимся.
 
Ну как почему? Вы же сами печатаете еще раз в коде и не прерываете печать первую. в конце добавьте Сancel=True
По вопросам из тем форума, личку не читаю.
 
Спасибо большое, БМВ. Ларчик-то просто открывался. Еще раз спасибо
Страницы: 1
Наверх