VBA Print Активный Инкремент Листа - PullRequest
0 голосов
/ 23 июня 2019

У меня есть скрипт, который копирует некоторые данные на лист и затем делает копию в конец файла. Затем файл перекомпилируется с новыми данными для повторного копирования в конец листа. Этот скрипт отлично работает. Единственная проблема у меня заключается в том, что когда я хочу распечатать все листы, он начинается с последнего созданного вместо первого листа. Так, например, у меня есть 60 листов, и когда они напечатаны, начинается 60,59,58 ... 1.

Что я могу сделать, чтобы напечатать со страницы 1 до страницы 60, например:

Спасибо.

Sub Print_All()
    For i = 4 To ActiveWorkbook.Sheets.Count
        Worksheets(i).Select
        ActiveSheet.PrintOut
    Next
    i = i + 1
End Sub

Ответы [ 2 ]

1 голос
/ 23 июня 2019
For i = ActiveWorkbook.Sheets.Count To 4 Step -1
0 голосов
/ 23 июня 2019

Когда вы используете For i = 1 to N, тогда нет необходимости идти i = i + 1, и оно должно работать:

Sub PrintAll()

    Dim i As Long
    For i = 1 To ThisWorkbook.Worksheets.Count
        Worksheets(i).PrintOut
    Next

End Sub

Кроме того, это хорошая идея, чтобы избежать Select и Activateв VBA - Как избежать использования Select в Excel VBA

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...