分享

EXCEL打印预览中如何做到自动精准分页

 刀手69 2018-03-16

EXCEL打印预览中如何做到自动精准分页

很多excel工作者在打印预览多页内容时,发现往往有分页线不精准的问题,于是只能手工调整。页数少的话还可以,但如果页数很多,手工调整起来费时费力。朋友们看下面表一的E列中分页线没有处于第13考场和第12考场之间。这时我们把鼠标放到分页线上,按下鼠标左键分页线拖到第12考场和第13考场之间,即把分页线放到第32行的上面。

EXCEL打印预览中如何做到自动精准分页

表一

这时Excel会随之自动把下面的分页线作智能改变,也会向下移动,但是大多数情况下,每个班的人数是不一样的,当我们把滚动条往下拉时,发现第12考场和第11考场的分页线并没有处于我们理想的位置,而是如下表这样的:

EXCEL打印预览中如何做到自动精准分页

表二

怎么办?不用说,再作手工调整。然后滚动条再往下拉,发现第11考场和第10考场的分页线也没有正好处于两考场中间:

EXCEL打印预览中如何做到自动精准分页

表三

怎么办?好像没有别的办法。难以想象如果大点的企业报表,动则上百页的打印,难道也这样手工调整啊!费时费力不说,关键是眼花呀,一旦弄错事情可大可小啊!

其实利用excel的VBA代码可以轻易解决这个问题。下面跟小蕃一起来看看吧。什么?你不懂VBA,没有听说过?没有关系啦。如果不想去理解,会复制粘贴就能实现功能的了。如果是高手就绕过吧。

第一、进行使用VBA代码前的准备操作:

1、 点击“文件”—“选项”---自定义功能区,在右侧窗口中找到“开发者工具”,在它前面小方格中打上“√”,点确定。

2、 点击“文件“—”选项“---信任中心---信任中心设置,找到”宏设置“----选”启用所有宏“。注意,一般Excel是禁用宏的,刚才这部是启用宏,允许程序运行VBA代码。为了让刚才的设置起作用,关闭EXCEL程序,重启程序并打开刚才的文件。

第二、复制代码实现精准分页:

点击“开发工具“下的最左边的”Visal Basic”按钮,就打开了VBA代码编辑器,如下图:

EXCEL打印预览中如何做到自动精准分页

VBA编辑器窗口

1、 点击“代码编辑窗口“左边的“VBAProject(工作簿1)“,再在上面点击鼠标右键,选择”插入“---”模块”,然后复制下面的20行代码,粘贴到到“代码编辑窗口“右边的空白区域:

Sub 按考场自动精准分页( )

'一、定义变量和初始值

Dim i, j, k, t1, t

j = 1

i = 4

k = 2

'二、取得占有单元格的列数和行数

t1 = ActiveSheet.UsedRange.Columns.count '取得列数

t = ActiveSheet.UsedRange.Rows.count '取得行数

'三、先设置打印预览

ActiveWindow.View = xlPageBreakPreview

'四、设置按考场调整分页符,即同一考场打印在同一页内

Do While Cells(i, 5) <> ''

If Cells(i, 5) <> Cells(i - 1, 5) Then

Set ActiveSheet.HPageBreaks(j).Location = Cells(i, 1)

j = j + 1

End If

i = i + 1

Loop

End Sub

3、【特别提醒】本例中的考试号在第5列,也就是E列,如果朋友们的工作表中,排序基准列不是E列,比如说在H列,那么H列在EXCEL中是就是左边数过来第8列。这时你要把上面代码中的第四部分中的数字“5”,改成“8”。改好后,也别急着去执行代码,还要做下面两步。

第三、按考场号排序。小蕃这里用的降序排序,所以大号的考场在前,号小的考场在后。

第四、点击“视图”菜单下的“分页预览”。你会发现分页线没有正好处于不同的考场之间。没关系,接下来该让VBA代码出来工作啦。

第五、执行代码。点击“开发工具”菜单下,左边第二个菜单---“宏”。在跳出的宏窗口,点击“按考场自动精准分页”,再点右边的“执行”按钮。再去观察一下分页线,每一条分页线都准确地放在了两个考场之间,不管是有两页,还是两百页,都一键搞定!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多