В этой статье мы создадим макрос для печати данных с разных листов.

У нас есть разные исходные данные на двух листах, и мы хотим настроить распечатку с этих листов.

ArrowRawFirst

ArrowRawSecond

ArrowMain

Перед запуском макроса мы должны указать тип требуемой распечатки и указать имя, диапазон или пользовательский вид.

ArrowCustomView

Мы создали настраиваемый вид customView1.

Логическое объяснение

Мы создали макрос «PrintReports» для индивидуальной печати. Этот макрос будет зацикливаться, начиная с ячейки A13 до последней строки. Мы можем указать три различных типа для индивидуальной печати.

Для типа 1 нам нужно указать имя листа в следующем столбце.

Для типа 2 нам нужно указать диапазон, для которого мы хотим распечатать.

Для типа 3 нам нужно указать имя пользовательского представления.

Объяснение кода

Для каждой ячейки1 в диапазоне («A13», ActiveCell.End (xlDown))

Приведенный выше код используется для цикла, начиная с ячейки A13 до последней строки.

DefinedName = ActiveCell.Offset (0, 1) .Value Приведенный выше код используется для получения значения из ячейки в следующем столбце из активной ячейки.

Select Case Cell1.Value Case 1 ‘Выбор определенных листов листов (DefinedName). Select Case 2’ Выбор определенного диапазона Application.Goto Ссылка: = DefinedName Case 3 ‘Выбор определенного настраиваемого представления ActiveWorkbook.CustomViews (DefinedName). Show End Select Вышеупомянутый оператор Select используется для выбора указанной области на основе типа, определенного пользователем.

ActiveWindow.SelectedSheets.PrintOut Приведенный выше код используется для печати выбранной области.

Пожалуйста, введите код ниже

Option Explicit

Sub PrintReports()

'Declared variables

Dim DefinedName As String

Dim Cell1 As Range

'Disabling screen updates

Application.ScreenUpdating = False

'Looping through all the cells

For Each Cell1 In Range("A13", ActiveCell.End(xlDown))

Sheets("Main").Activate



'Selecting the cell

Cell1.Select



'Getting value of sheet name or defined range

DefinedName = ActiveCell.Offset(0, 1).Value



Select Case Cell1.Value



Case 1

'Selecting the defined sheet

Sheets(DefinedName).Select

Case 2

'Selecting the defined range

Application.Goto Reference:=DefinedName

Case 3

'Selecting the defined custom view

ActiveWorkbook.CustomViews(DefinedName).Show

End Select



'Printing the required data

ActiveWindow.SelectedSheets.PrintOut



Next

Application.ScreenUpdating = True

End Sub

Если вам понравился этот блог, поделитесь им с друзьями на Facebook и Facebook.

Мы будем рады услышать от вас, дайте нам знать, как мы можем улучшить нашу работу и сделать ее лучше для вас. Напишите нам на [email protected]