excel 用VBA循环打印数据

Sub PrintData()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1") ' 修改为你的工作表名
    
    Dim rng As Range
    Set rng = ws.Range("A1:D10") ' 修改为你的数据区域
    
    Dim cell As Range
    Dim i As Integer
    
    Application.ScreenUpdating = False ' 关闭屏幕更新以加快宏运行速度
    
    For Each cell In rng
        If i = 0 Then ' 如果是第一行,不打印
            i = i + 1
        Else
            ws.Range(ws.Cells(i, 1), ws.Cells(i, 4)).PrintOut ' 打印当前行
            i = i + 1
        End If
    Next cell
    
    Application.ScreenUpdating = True ' 重新开启屏幕更新
End Sub

  自己工程代码

Sub 循环打印()
Dim i As Integer, j As Integer
Dim a()
Dim b()
Worksheets("打印数据").Activate '先激活需要操作的表
a = Range("A2:ad" & Range("a2").End(xlDown).Row) '将数据存入数组中 '将数据存入数组中

Worksheets("追踪单打印 -A6").Activate '先激活需要操作的表
b = Range("K2:s" & Range("k2").End(xlDown).Row) '将数据存入数组中 '将数据存入数组中

For i = 1 To UBound(a)
      For j = 1 To UBound(b)
      If a(i, 1) = b(j, 1) Then
        Sheets("追踪单打印 -A6").Range("g1") = a(i, 9)
        Sheets("追踪单打印 -A6").Range("a9") = a(i, 24)
         Sheets("追踪单打印 -A6").Range("b2") = a(i, 2)
         Sheets("追踪单打印 -A6").Range("c2") = a(i, 3)
         Sheets("追踪单打印 -A6").Range("e3") = Sheets("追踪单打印 -A6").Range("o" & j + 1)
          Sheets("追踪单打印 -A6").Range("e4") = a(i, 18)
          Sheets("追踪单打印 -A6").Range("b5") = a(i, 6)
           Sheets("追踪单打印 -A6").Range("e5") = a(i, 19)
           Sheets("追踪单打印 -A6").Range("b6") = a(i, 7)
        Sheets("追踪单打印 -A6").Range("a16") = a(i, 16)
         Sheets("追踪单打印 -A6").Range("g6") = a(i, 28)
         Sheets("追踪单打印 -A6").Range("b9") = a(i, 25)
         Sheets("追踪单打印 -A6").Range("c9") = a(i, 26)
          Sheets("追踪单打印 -A6").Range("d9") = a(i, 27)
          Sheets("追踪单打印 -A6").Range("e9") = a(i, 23)
          Sheets("追踪单打印 -A6").Range("e11") = a(i, 8)
          Sheets("追踪单打印 -A6").Range("b12") = a(i, 12)
          Sheets("追踪单打印 -A6").Range("e12") = a(i, 11)
          Sheets("追踪单打印 -A6").Range("b13") = a(i, 15)
        Sheets("追踪单打印 -A6").Range("b14") = Sheets("追踪单打印 -A6").Range("m" & j + 1)
        Sheets("追踪单打印 -A6").Range("g13") = Sheets("追踪单打印 -A6").Range("n" & j + 1)
             ' Sheets("追踪单打印 -A6").Range("e6") = Sheets("追踪单打印 -A6").Range("b14") * Sheets("追踪单打印 -A6").Range("g13") * a(i, 16)
             
            With Sheets("追踪单打印 -A6")
      
            '.PrintOut      '打印机打印
            .PrintPreview '打印预览
            
      
             End With
             
         Exit For '退出for
      End If
     
      Next
      
   
Next

End Sub

  

Sub 清除打印数据表()
 Worksheets("打印数据").Activate '先激活需要操作的表
    Range("a2:AD" & Range("a2").End(xlDown).Row).ClearContents '清除单元格的内容和格式
    Worksheets("追踪单打印 -A6").Activate  '先激活需要操作的表
End Sub
Sub 打印()
Call 清除打印数据表
Call 复制打印数据数组
Call 循环打印
End Sub

  

posted @ 2024-04-25 11:37  路飞园  阅读(332)  评论(0)    收藏  举报