ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求助,成绩汇总表打印控制按钮

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-4-5 21:53 | 显示全部楼层 |阅读模式
想在页面上加一个打印按钮,点击按钮整张表同时打印时,进行打印控制
一、班级与班级分开

二、打印的标题行手动设置完,每页打印25个人员,某个班级打印的最后一页不足25行,用相同行高的空行补上。





请帮忙,谢谢。

成绩汇总表.zip

28.35 KB, 下载次数: 2

TA的精华主题

TA的得分主题

发表于 2018-4-5 23:00 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-4-6 01:17 | 显示全部楼层
看到用空行补齐我忽然就觉得……呃,这是个什么需求?
这是典型的报表输出需求,每个人需要的报表格式不一样,所以几乎每次都需要手工定制。
最烦就是用excel做报表了,真希望excel能够增加一种报表文件类型。
做出来的效果和楼主要的不一样,仅供参考。 成绩汇总表.rar (32.12 KB, 下载次数: 15)


  1. Sub 打印()
  2.     Application.ScreenUpdating = False
  3.     Application.DisplayAlerts = False

  4.     Dim conn As Object, rs As Object
  5.     Set conn = CreateObject("ADODB.connection")
  6.     Set rs = CreateObject("ADODB.recordset")
  7.     Dim connStr$, sqlStr$
  8.     connStr = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
  9.                 " Extended Properties=Excel 12.0;" & _
  10.                 " Data Source=" & ThisWorkbook.FullName
  11.     conn.Open connStr
  12.    
  13.     For Each sht In Worksheets '删除无用表
  14.         If sht.Name <> "原表" Then sht.Delete
  15.     Next
  16.    
  17.     arr = Array(1, 2, 3) '有几个班级
  18.     For i = 0 To UBound(arr)
  19.         sqlStr = "select 序号,班级,姓名,语文,数学,英语,物理,化学,总分 from [原表$] where 班级 = '" & arr(i) & "班'"
  20.         Set rs = conn.Execute(sqlStr)
  21.         Worksheets.Add after:=Worksheets(Worksheets.Count) '为每个班增加一张表
  22.         With Worksheets(Worksheets.Count)
  23.             .Name = arr(i) & "班成绩表"
  24.             For j = 0 To rs.Fields.Count - 1 '写标题
  25.                 .Cells(1, j + 1) = rs.Fields(j).Name
  26.             Next
  27.             .Range("A2").CopyFromRecordset rs '写入查询结果
  28.             
  29.             '下面全是格式美化
  30.             With .UsedRange
  31.                 .HorizontalAlignment = xlCenter '对齐
  32.                 .VerticalAlignment = xlCenter
  33.                 .Font.Name = "等线" '字体
  34.                 .Font.Size = 10.5
  35.                 .RowHeight = 23 '行高,23刚刚好,每页打印30个学生的成绩,基本上每个班2页纸打完
  36.                 '美化标题行
  37.                 With .Cells(1, 1).Resize(1, rs.Fields.Count)
  38.                     With .Font
  39.                         .Name = "黑体"
  40.                         .Size = 11
  41.                     End With
  42.                     With .Interior
  43.                         .ThemeColor = xlThemeColorDark1
  44.                         .TintAndShade = -4.99893185216834E-02
  45.                     End With
  46.                 End With
  47.                 '设置边框
  48.                 With .Borders
  49.                     .LineStyle = xlContinuous
  50.                     .Weight = xlHairline
  51.                 End With
  52.                 '设置外边框
  53.                 .BorderAround xlContinuous, xlThin
  54.             End With
  55.             
  56.             '设置页眉页脚,打印标题行,居中
  57.             With .PageSetup
  58.                 .CenterHeader = "&""黑体,常规""&16 " & Year(Date) & "年" & arr(i) & "班成绩表"
  59.                 .CenterFooter = "&10 第 &P 页  共 &N 页"
  60.                 .CenterHorizontally = True
  61.                 .PrintTitleRows = "$1:$1"
  62.             End With
  63.         End With
  64.         Set rs = Nothing
  65.     Next
  66. conn.Close
  67. Set conn = Nothing
  68.     Application.ScreenUpdating = True
  69.     Application.DisplayAlerts = True
  70. End Sub
复制代码


评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-6 09:43 | 显示全部楼层
zorsite 发表于 2018-4-6 01:17
看到用空行补齐我忽然就觉得……呃,这是个什么需求?
这是典型的报表输出需求,每个人需要的报表格式不一 ...

谢谢帮忙。在最末页增加空行确实是个奇葩要求,不过是领导要求,没办法。

TA的精华主题

TA的得分主题

发表于 2018-4-6 11:34 | 显示全部楼层
本帖最后由 zorsite 于 2018-4-6 18:59 编辑
zgcc2010zgcc 发表于 2018-4-6 09:43
谢谢帮忙。在最末页增加空行确实是个奇葩要求,不过是领导要求,没办法。

拿我的输出结果去给你们领导看吧,提高一下你们领导的审美能力。页眉什么的你可以自己设置。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-6 12:19 | 显示全部楼层
zorsite 发表于 2018-4-6 11:34
那我的输出结果去给你们领导看吧,提高一下你们领导的审美能力。页眉什么的你可以自己设置。

你好,加空行有办法吗?

TA的精华主题

TA的得分主题

发表于 2018-4-6 18:59 | 显示全部楼层
zgcc2010zgcc 发表于 2018-4-6 12:19
你好,加空行有办法吗?

你可以通过PageSetup.Pages.Count来获取页数,根据页数计算总行数,再根据总行数来设置边框,从而实现“加空行”。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-6 19:29 | 显示全部楼层
zorsite 发表于 2018-4-6 18:59
你可以通过PageSetup.Pages.Count来获取页数,根据页数计算总行数,再根据总行数来设置边框,从而实现“ ...

谢谢你的帮助

TA的精华主题

TA的得分主题

发表于 2018-4-6 22:04 | 显示全部楼层
本帖最后由 mjzxlmg 于 2018-4-7 08:51 编辑

测试附件:
成绩汇总表.rar (39.24 KB, 下载次数: 9)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-7 08:27 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-6-17 13:15 , Processed in 0.040854 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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