Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 7355|回复: 12

利用已有信息和固定模版批量制作打印准考证和报名信息表

[复制链接]
发表于 2016-5-23 09:33 | 显示全部楼层 |阅读模式
因小学升初中报名信息表和准考证需要大量手工填写,容易出错而且工作量太大,所以想利用EXCEL制作一个批量生成和打印《报名信息表》和《准考证》的工具,报名信息表是A4纸大小一张,准考证是A4纸打印四张的,请问可否利用宏和按钮,进行一键生成和打印,最好还可以增加一个选择考点学校的选项。
能帮忙解决问题的朋友我可以给50元微信红包答谢,本人QQ:9677805
信息表准考证.rar (33.72 KB, 下载次数: 79)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-5-23 10:46 | 显示全部楼层
本帖最后由 爱疯 于 2016-5-23 10:57 编辑

信息表准考证2.rar (40.94 KB, 下载次数: 54)
回复

使用道具 举报

发表于 2016-5-23 11:47 | 显示全部楼层
信息表准考证3.rar (41.38 KB, 下载次数: 49)
回复

使用道具 举报

发表于 2016-5-23 15:32 | 显示全部楼层
Option Explicit

Dim arrData() As Variant    '学生数据
Dim arrAT() As Variant      '准考证表
Dim moveR As Long           '固定行偏移
Dim moveC As Integer        '固定列偏移

'准考证,Admission ticket
Sub printAT(school As String)
    Dim i&, s&
    moveR = 11: moveC = 7
    arrData = Sheets("准考证信息").Range("a1").CurrentRegion.Value
    arrAT = Sheets("准考证").[A1:L20].Value
    Call clearAT

    For i = 2 To UBound(arrData)
        '1)录入指定学校的数据
        If arrData(i, 5) = school Then
            s = s + 1
            Call inputAT(s, i)
        End If

        '2)输出并打印
        If (s Mod 4 = 0 And s > 1) Or i = UBound(arrData) Then
            Sheets("准考证").Range("a1").Resize(UBound(arrAT), UBound(arrAT, 2)) = arrAT
            Sheets("准考证").PrintOut
            Call clearAT
        End If
    Next i
End Sub

Private Sub clearAT()
    Dim j%
    For j = 1 To 4
        Call inputAT(j, 1)
    Next j
    Sheets("准考证").Range("a1").Resize(UBound(arrAT), UBound(arrAT, 2)) = arrAT
End Sub

'录入准考证
Private Sub inputAT(s, i)
    Dim r&, c%

    '行偏移r2,列偏移c2
    Select Case s Mod 4
    Case 1
        r = moveR * 0: c = moveC * 0
    Case 2
        r = moveR * 0: c = moveC * 1
    Case 3
        r = moveR * 1: c = moveC * 0
    Case 0
        r = moveR * 1: c = moveC * 1
    End Select

    '录入
    arrAT(3 + r, 2 + c) = IIf(i = 1, "", arrData(i, 1))
    arrAT(4 + r, 2 + c) = IIf(i = 1, "", arrData(i, 2))
    arrAT(5 + r, 2 + c) = IIf(i = 1, "", arrData(i, 3))
    arrAT(6 + r, 2 + c) = IIf(i = 1, "", arrData(i, 4))
    arrAT(7 + r, 2 + c) = IIf(i = 1, "", arrData(i, 5))
    arrAT(8 + r, 2 + c) = IIf(i = 1, "", arrData(i, 6))
    arrAT(8 + r, 5 + c) = IIf(i = 1, "", arrData(i, 7))
    arrAT(9 + r, 3 + c) = IIf(i = 1, "", arrData(i, 8))
End Sub

信息表准考证4.rar (43.72 KB, 下载次数: 58)
回复

使用道具 举报

发表于 2016-5-23 16:02 | 显示全部楼层
信息表准考证5.rar (42.17 KB, 下载次数: 75)
回复

使用道具 举报

发表于 2016-5-23 16:22 | 显示全部楼层
邮件合并也是可以的吧,自己百度就可解决。
回复

使用道具 举报

发表于 2016-5-23 16:37 | 显示全部楼层
信息表准考证6.rar (43.61 KB, 下载次数: 15)
回复

使用道具 举报

发表于 2016-5-24 13:57 | 显示全部楼层
爱疯 发表于 2016-5-23 16:37
忘了加多选(学校),加了

[size=11.666666030883789px]爱疯老师:报名登记表怎样打印,好像没有见到代码或按钮,多谢指教。
回复

使用道具 举报

 楼主| 发表于 2016-5-24 14:36 | 显示全部楼层
爱疯 发表于 2016-5-23 16:37
忘了加多选(学校),加了

版主,考生信息表的打印还不能够实现。
回复

使用道具 举报

 楼主| 发表于 2016-5-24 14:37 | 显示全部楼层
另外请告知您的微信号,谢谢。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-24 21:18 , Processed in 0.287969 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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