在本文中,我们将创建一个宏来打印来自不同工作表的数据。

我们在两张纸上有不同的原始数据,我们想自这些纸上定制打印输出。

ArrowRawFirst

ArrowRawSecond

ArrowMain

在运行宏之前,我们必须指定所需的打印输出类型,并指定名称,范围或自定义视图。

ArrowCustomView

我们创建了一个自定义视图“ customView1”。

逻辑解释

我们创建了“ PrintReports”宏用于自定义打印。该宏将从单元格A13循环到最后一行。我们可以为定制打印指定三种不同的类型。

对于类型1,我们需要在下一列中指定工作表名称。

对于类型2,我们需要指定想要打印输出的范围。

对于类型3,我们需要指定自定义视图的名称。

代码说明

对于Range(“ A13”,ActiveCell.End(xlDown))中的每个Cell1

上面的代码用于从单元格A13循环到最后一行。

DefinedName = ActiveCell.Offset(0,1).Value上面的代码用于从活动单元格的下一列中的单元格获取值。

选择案例Cell1.Value案例1’选择定义的工作表Sheets(DefinedName)。选择案例2’选择定义的范围Application.Goto参考:= DefinedName案例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]