ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1875|回复: 11

[求助] 怎么批量打印63个班级的费用明细

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-12-22 10:01 | 显示全部楼层 |阅读模式
本帖最后由 DFWZP 于 2022-12-22 11:51 编辑

怎么将数据源里面的63个班级的数据分班级批量打印到,确认签字里面,每个班级打印在一页上面。
确认签字是不用管的,要手写的。其他的数据要对应的填进去。金额是填入(9、10、11、12月)4个月的数据,就是要将每个班级的每月的数据,分别打印到一张纸上,如果麻烦,可以先填入9月一个月的,都可以。

微信截图_20221222100124.png

超5元 签字册.zip

134.19 KB, 下载次数: 20

TA的精华主题

TA的得分主题

发表于 2022-12-22 11:40 | 显示全部楼层
确认签字中的   确认签字 ,究竟是指数据表中的哪一列数据????合计??

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-22 11:45 | 显示全部楼层
本帖最后由 DFWZP 于 2022-12-22 11:48 编辑
3190496160 发表于 2022-12-22 11:40
确认签字中的   确认签字 ,究竟是指数据表中的哪一列数据????合计??

确认签字是不用管的,要手写的。其他的数据要对应的填进去。金额是分4个月来填入(9、10、11、12月),如果麻烦,可以先填入9月一个月的,都可以。

TA的精华主题

TA的得分主题

发表于 2022-12-22 13:07 | 显示全部楼层
Sub 拆分()
Application.ScreenUpdating = False
Dim ar As Variant
Dim arr()
Dim d As Object
Set d = CreateObject("scripting.dictionary")
With Sheets("数据")
    r = .Cells(Rows.Count, 1).End(xlUp).Row
    If r < 3 Then MsgBox "数据为空!": End
    ar = .Range("a2:h" & r)
End With
For i = 2 To UBound(ar)
    If Trim(ar(i, 3)) <> "" Then
        d(Trim(ar(i, 3))) = ""
    End If
Next i
With Sheets("确认签字")
    rs = .Cells(Rows.Count, 8).End(xlUp).Row
    If rs > 37 Then .Rows("38:" & rs).Delete
    .Range("b4:d36") = Empty
    .Range("h4:j36") = Empty
    gs = d.Count
    m = 38
    For i = 1 To gs - 1
        .Rows("1:37").Copy .Cells(m, 1)
        m = m + 37
    Next i
    m = 4
    For Each k In d.keys
        n = 0: tt = 0
        ReDim arr(1 To UBound(ar), 1 To 3)
        For i = 2 To UBound(ar)
            If Trim(ar(i, 3)) = k Then
                n = n + 1
                For j = 2 To 4
                    arr(n, j - 1) = ar(i, j)
                Next j
            End If
        Next i
        .Cells(m - 2, 2) = "总人数:" & n
        If n <= 33 Then
            .Cells(m, 2).Resize(n, 3) = arr
        Else
            For i = 1 To n Step 33
                tt = tt + 1
                xh = m - 1
                If tt = 1 Then
                    lh = 2
                Else
                    lh = 8
                End If
                For s = i To i + 32
                    If s <= n Then
                        xh = xh + 1
                        .Cells(xh, lh).Resize(1, 3) = Application.Index(arr, s, 0)
                    End If
                Next s
            Next i
        End If
        m = m + 37
    Next k
End With
Application.ScreenUpdating = True
MsgBox "ok!"
End Sub

TA的精华主题

TA的得分主题

发表于 2022-12-22 13:08 | 显示全部楼层
超5元签字册.rar (173.21 KB, 下载次数: 12)

TA的精华主题

TA的得分主题

发表于 2022-12-22 13:15 | 显示全部楼层
数据导入access,设置一下报表。   再点一下就生成63张表了。  要么VBA
1.png

生成的报表.zip

1.5 MB, 下载次数: 9

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-22 13:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

非常感谢,还是不知道怎么弄的,原理是什么,有相关的教程吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-22 13:43 | 显示全部楼层
本帖最后由 DFWZP 于 2022-12-22 15:06 编辑
zjnfxxh 发表于 2022-12-22 13:15
数据导入access,设置一下报表。   再点一下就生成63张表了。  要么VBA

非常感谢,还是不知道怎么弄的,原理是什么,有相关的教程吗?怎么做出来的。

TA的精华主题

TA的得分主题

发表于 2022-12-22 13:47 | 显示全部楼层
DFWZP 发表于 2022-12-22 13:42
非常感谢,还是不知道怎么弄的,原理是什么,有相关的教程吗?

这是vba代码完成的,已经给你写好了代码,画好按钮 了,你不至于点击按钮都不会吧

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-22 15:05 | 显示全部楼层
3190496160 发表于 2022-12-22 13:47
这是vba代码完成的,已经给你写好了代码,画好按钮 了,你不至于点击按钮都不会吧

我是说这个代码的教程,实现的方法。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-10 00:19 , Processed in 0.026787 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表