在Excel中使用VBA不同的纸张上打印数据
在本文中,我们将创建一个宏来打印来自不同工作表的数据。
我们在两张纸上有不同的原始数据,我们想自这些纸上定制打印输出。
在运行宏之前,我们必须指定所需的打印输出类型,并指定名称,范围或自定义视图。
我们创建了一个自定义视图“ 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]