首页 > 其他分享 >excel 用VBA循环打印数据

excel 用VBA循环打印数据

时间:2024-04-25 11:44:34浏览次数:29  
标签:VBA End 打印 excel Range Sheets A6 追踪

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

  

标签:VBA,End,打印,excel,Range,Sheets,A6,追踪
From: https://www.cnblogs.com/Sunshine-bing/p/18157279

相关文章

  • SpringBoot项目实现日志打印SQL明细(包括SQL语句和参数)几种方式
    前言我们在开发项目的时候,都会连接数据库。有时候遇到问题需要根据我们编写的SQL进行分析,但如果不进行一些开发或者配置的话,这些SQL是不会打印到控制台的,它们默认是隐藏的。下面给大家介绍几种常用的方法。第一种、代码形式Mybatis框架是Java程序员最常用的数据库映射框架,MyBa......
  • 【EXCEL】大量のシートを名前付きで一括作成
    複数シートの一括作成转自:https://note.com/office_haru/n/n35ab7211eece......
  • Python基础-模块、Python操作excel
    模块和面向对象-day9今日概要模块自定义模块内置模块第三方模块[!Caution]这个地方讲的会比较多,而且有的东西网上搜不到!!!自动化办公相关模块--Excel和Word面向对象1.面向对象中的概念对象,什么是对象?比如说我桌子上好多东西,有铅笔、钢笔、圆珠笔,玻......
  • 云打印为什么这么便宜?
    随着云打印的火热发展,越来越多的用户开始选择云打印服务了。我们在之前的内容里也介绍过,现在的易绘创云打印服务A4低至5分钱/页。那么云打印为什么这么便宜呢?今天小易就带大家来了解一下。 云打印为什么这么便宜?相信很多用户在第一次接触到易绘创云打印服务的时候总会被A4低......
  • C# 导出 Excel 时,指定 日期格式
    C#在导出Excel时,如果mySQL数据库字段类型如果是DateTime时。默认情况下是 例2010/03/1212:40 这样的形式使用 Microsoft.Office.Interop.Excel 开发导出Excel用遍历全表的方式太慢,若导出上万行,有明显的卡顿。ApplicationexcelApp=newApplic......
  • Excel为批注设置图片背景 出现Bad Request - Request Too long
    Excel为批注设置图片背景  打开EXCEL点击文件 点选项 点击信任中心 点击信任中心设置 点击隐私选项 点击隐私设置 取消全部勾选  在填充效果中在选图片出现 点脱机工作  就可以正常先图片了......
  • C#使用MiniExcel导入导出数据到Excel/CSV文件【IO操作】
    MiniExcel简介简单、高效避免OOM的.NET处理Excel查、写、填充数据工具。目前主流框架大多需要将数据全载入到内存方便操作,但这会导致内存消耗问题,MiniExcel尝试以Stream角度写底层算法逻辑,能让原本1000多MB占用降低到几MB,避免内存不够情况。 特点:   低内存耗用,避免OOM......
  • PostScript 是一种页面描述语言,最初由 Adobe 公司开发。它被设计用于描述页面的外观和
    PostScript的起源可以追溯到1982年,当时由Adobe公司的创始人之一约翰·沃诺克(JohnWarnock)和查尔斯·格什克(CharlesGeschke)共同开发。沃诺克和格什克当时都是在施乐帕克研究中心工作,他们在那里开始了对一种新的页面描述语言的研究和开发。当时的打印技术面临着一些挑战,......
  • JavaImprove--Lesson10--IO流-字符流,缓冲流,转换流,打印流,数据流
    一.IO流-字符流上期在字节流的学习中,了解到字节流写字符操作表现很不好,随时面临乱码的情况,一下写完全部数据的,内存可能不足,所以对于文本操作还需要专业的操作 而字符流就非常适合操作文本字符FileWirte文件字符输入流作用:以内存为基准,可以把文件的数据以字符的形式输入到......
  • Poi-tl和EasyExcel以及Apache-Poi的版本冲突问题
    有新需求需要导出word文档;于是选择了Poi-tl,项目中已经使用了EasyExcel做相关Excel的导入与导出;当加入poi-tl做导出word时各种报错...踩过的坑就不展示了....下面是CV可用的,直接复制即可<properties> <poi-tl.version>1.12.0</poi-tl.version> <poi.version>5.2.2</poi.v......