Страницы: 1
RSS
Печать всех столбцов на 1 листе VBA.
 
Добрый день.
Прошу помочь со следующей проблемой. Нужно распечатать все столбцы на 1 листе. Написал макрос
Код
Sub Макрос1()
    ActiveWindow.View = xlPageBreakPreview
    ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1
End Sub

При первом запуске макрос отрабатывает корректно, но если второй раз запустить его в том же документе, то выдает ошибку. Как исправить макрос, чтобы работал при многократном запуске?
Изменено: Omnyblade - 10.06.2019 14:48:02
 
Omnyblade, код следует оформлять соответствующим тегом: ищите такую кнопку (см. скрин) и исправьте своё сообщение.
 
ИМХО добавьте в код строку:
Код
Sub Макрос1()
    On Error Resume Next'<=================================================
    ActiveWindow.View = xlPageBreakPreview
    ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1
End Sub
Удивление есть начало познания © Surprise me!
И да пребудет с нами сила ВПР.
 
Штатное решение:
Код
Sub OnePageWide()
  With ActiveSheet.PageSetup
    .Zoom = False
    .FitToPagesWide = 1
    .FitToPagesTall = False
  End With
End Sub
Владимир
 
Ёк-Мок, Спасибо, метод рабочий. Я бы еще добавил строку отключающую обработчик ошибок, чтоб остальные ошибки в макросе не прошли мимо
Код
Sub Макрос1()
    On Error Resume Next '<=================================================
    ActiveWindow.View = xlPageBreakPreview
    ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1
    On Error GoTo 0 ' Выключаем обработчик ошибок, чтобы остальные ошибки не прошли мимо
End Sub


sokol92, спасибо за стандартное решение. Оно лучше, чем предложенный мной вариант.
Изменено: Omnyblade - 14.06.2019 11:22:00
 
Не стоит увлекаться обработчиком ошибок.
Страницы: 1
Наверх