Здравствуйте! Сразу к сути. У меня есть макрос который передает нужные листы книги на печать:
[vba]
Код
Sub Печать() 'печатаем лишь нужные страницы Application.DisplayAlerts = False For j = Sheets.Count To 1 Step -1 If Sheets(j).Name <> "7_качеств_личности" And Sheets(j).Name <> "Темпераменты" And Sheets(j).Name <> "Base" And _ Sheets(j).Name <> "Sort" And Sheets(j).Name <> "BallOneSchool" And Sheets(j).Name <> "Разное" And Sheets(j).Name <> "errore" Then Application.PrintCommunication = False With Sheets(j).PageSetup .LeftHeader = "" .CenterHeader = "" .RightHeader = "" .LeftFooter = "" .CenterFooter = "" .RightFooter = "" .LeftMargin = Application.InchesToPoints(0.590551181102362) .RightMargin = Application.InchesToPoints(0.590551181102362) .TopMargin = Application.InchesToPoints(0.393700787401575) .BottomMargin = Application.InchesToPoints(0.590551181102362) .HeaderMargin = Application.InchesToPoints(0.31496062992126) .FooterMargin = Application.InchesToPoints(0.31496062992126) .PrintHeadings = False .PrintGridlines = False .PrintComments = xlPrintNoComments .PrintQuality = 600 .CenterHorizontally = False .CenterVertically = False .Orientation = xlPortrait .Draft = False .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = False .Zoom = 100 .PrintErrors = xlPrintErrorsDisplayed .OddAndEvenPagesHeaderFooter = False .DifferentFirstPageHeaderFooter = False .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True .EvenPage.LeftHeader.Text = "" .EvenPage.CenterHeader.Text = "" .EvenPage.RightHeader.Text = "" .EvenPage.LeftFooter.Text = "" .EvenPage.CenterFooter.Text = "" .EvenPage.RightFooter.Text = "" .FirstPage.LeftHeader.Text = "" .FirstPage.CenterHeader.Text = "" .FirstPage.RightHeader.Text = "" .FirstPage.LeftFooter.Text = "" .FirstPage.CenterFooter.Text = "" .FirstPage.RightFooter.Text = "" End With Application.PrintCommunication = True Sheets(j).PrintOut Copies:=1, Collate:=True End If Next Application.DisplayAlerts = True End Sub
[/vba]
Проблема: В какой то момент принтер начинает печатать чистые белые листы. После перезапуска экселя всё нормализуется, но через некоторое время опять повторяется. Такое чувство что что-то переполняется, но я не знаю что. Не помогли бы Вы мне помочь разобраться?
[admin]Длинные листинги рекомендуется убирать в спойлеры[/admin]
Здравствуйте! Сразу к сути. У меня есть макрос который передает нужные листы книги на печать:
[vba]
Код
Sub Печать() 'печатаем лишь нужные страницы Application.DisplayAlerts = False For j = Sheets.Count To 1 Step -1 If Sheets(j).Name <> "7_качеств_личности" And Sheets(j).Name <> "Темпераменты" And Sheets(j).Name <> "Base" And _ Sheets(j).Name <> "Sort" And Sheets(j).Name <> "BallOneSchool" And Sheets(j).Name <> "Разное" And Sheets(j).Name <> "errore" Then Application.PrintCommunication = False With Sheets(j).PageSetup .LeftHeader = "" .CenterHeader = "" .RightHeader = "" .LeftFooter = "" .CenterFooter = "" .RightFooter = "" .LeftMargin = Application.InchesToPoints(0.590551181102362) .RightMargin = Application.InchesToPoints(0.590551181102362) .TopMargin = Application.InchesToPoints(0.393700787401575) .BottomMargin = Application.InchesToPoints(0.590551181102362) .HeaderMargin = Application.InchesToPoints(0.31496062992126) .FooterMargin = Application.InchesToPoints(0.31496062992126) .PrintHeadings = False .PrintGridlines = False .PrintComments = xlPrintNoComments .PrintQuality = 600 .CenterHorizontally = False .CenterVertically = False .Orientation = xlPortrait .Draft = False .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = False .Zoom = 100 .PrintErrors = xlPrintErrorsDisplayed .OddAndEvenPagesHeaderFooter = False .DifferentFirstPageHeaderFooter = False .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True .EvenPage.LeftHeader.Text = "" .EvenPage.CenterHeader.Text = "" .EvenPage.RightHeader.Text = "" .EvenPage.LeftFooter.Text = "" .EvenPage.CenterFooter.Text = "" .EvenPage.RightFooter.Text = "" .FirstPage.LeftHeader.Text = "" .FirstPage.CenterHeader.Text = "" .FirstPage.RightHeader.Text = "" .FirstPage.LeftFooter.Text = "" .FirstPage.CenterFooter.Text = "" .FirstPage.RightFooter.Text = "" End With Application.PrintCommunication = True Sheets(j).PrintOut Copies:=1, Collate:=True End If Next Application.DisplayAlerts = True End Sub
[/vba]
Проблема: В какой то момент принтер начинает печатать чистые белые листы. После перезапуска экселя всё нормализуется, но через некоторое время опять повторяется. Такое чувство что что-то переполняется, но я не знаю что. Не помогли бы Вы мне помочь разобраться?
[admin]Длинные листинги рекомендуется убирать в спойлеры[/admin]Матраскин
в интернете опять кто-то не прав
Сообщение отредактировал Матраскин - Вторник, 12.02.2013, 15:00
В качестве предположения: принтер просто физически не успевает. Попробуйте всю кучу между Вичами просто один раз запустить циклом по всей книге - установки для печати должны запомниться. А потом циклом отправляете листы на печать. Правда, скорее всего не поможет. Кстати, книга тяжелая? рисунки и картинки есть? Можно (не факт, что поможет) поставить прерывание макроса секунд на 5-10-15 (а может и побольше) после отправки на печать
В качестве предположения: принтер просто физически не успевает. Попробуйте всю кучу между Вичами просто один раз запустить циклом по всей книге - установки для печати должны запомниться. А потом циклом отправляете листы на печать. Правда, скорее всего не поможет. Кстати, книга тяжелая? рисунки и картинки есть? Можно (не факт, что поможет) поставить прерывание макроса секунд на 5-10-15 (а может и побольше) после отправки на печать_Boroda_