在Excel中使用VBA在不同的工作表上打印行

我在工作簿中有三个单独的工作表,其中包含数千行信息,并且经常添加新信息。 我希望能够创build单独的报告使用macros和VBA打印到另一个工作表时,我需要的报告。

例

例如,报告将包括2014年所有已完成的工作。如果已完成? 等于YES,Year等于2014,在空白工作表上打印整行。 但是,我需要使用VBA,以便通过三个工作表并将它们一起打印在单独的工作表中。 我将如何做到这一点?

澄清:基本上,如果这两个单元格等于这个和这个,打印在不同的表上的行。

练习这个。 用数据在工作表上插入一个button或其他types的对象。

一旦点击,代码将删除除活动工作表之外的所有工作表。

然后它循环通过列A并创build工作表。 然后循环遍历工作表并过滤数据表,将数据复制并粘贴到工作表中并移至下一页。

Sub getSht() Dim c As Range, sh As Worksheet Dim Rws As Long, Rng As Range, fRng As Range Dim ws As Worksheet Set ws = ActiveSheet Application.DisplayAlerts = 0 Application.ScreenUpdating = 0 For Each sh In Sheets If sh.Name <> ws.Name Then sh.Delete Next sh With ws Rws = .Cells(Rows.Count, "A").End(xlUp).Row Set Rng = .Range(.Cells(2, 1), .Cells(Rws, 1)) For Each c In Rng.Cells If WorksheetExists(c.Value) Then Else: Sheets.Add.Name = c End If Next c End With For Each sh In Sheets If sh.Name <> ws.Name Then ws.Range("A:A").AutoFilter Field:=1, Criteria1:=sh.Name Set fRng = ws.Range(ws.Cells(1, "A"), ws.Cells(Rws, "D")) fRng.Copy Destination:=sh.Range("A1") End If ws.AutoFilterMode = 0 Next sh ws.Activate End Sub Function WorksheetExists(WSName As String) As Boolean On Error Resume Next WorksheetExists = Worksheets(WSName).Name = WSName On Error GoTo 0 End Function