我要投稿
|
RSS
首页
办公教程
表格模板
人工服务
Excel基础
Excel函数
Excel公式
VBA宏语言
办公工具
您当前的位置:
首页
>
VBA宏语言
使用vba批量对excel表格进行分页处理,生成的箱标签确保在1张A4纸上
作者:
来源:
原创
我们以一个工作中的实际情况为例,来说明一下情况,生产的产品总会有包装,而包装又需要粘贴标签,而标签的组成中除了产品的名称,规格等,还有当前箱数,以及总箱数。 如下图:
如果每箱的标签修改一个,打印1个的话,太浪费时间,工作效率就很低。
如果能把所有的标签生成,打印就OK了。
而生成当前箱号以及总箱数,可以使用函数进行解决。如下图,我每10行设定1个箱标签,使用了公式:
="箱号/总箱数: "&INT(ROW()/10)+26&" /90"
但这里面有一个问题,如果直接生成,当打印的时候,会存在有些页显示的是一半的标签。
为了避免这种情况的发生,可以使用excel表格中的分页功能。
比如选择某一行后(即要插入分页的位置下一行),点击页面菜单下的插入分页符功能,如下图:
以开始的实际情况为例,每一箱一个标签,有90箱,则要插入90个分页符,这工作量还是有点大啊,如果是300箱标签呢?
能不能自动插入分页符,那就使用vba功能。对于重复的工作,写1个循环,把循环的条件设定好就OK了。
使用excel的宏录制,得到了基础的单次插入分页符的代码:
Sub 分页()
ActiveWindow.ScrollRow = 17
Range("A31:B31").Select
ActiveSheet.HPageBreaks.Add Before:=Range("A31")
ActiveWindow.ScrollRow = 29
Range("A41:B41").Select
ActiveSheet.HPageBreaks.Add Before:=Range("A41")
End Sub
选择某个行后,点击插入分页,重要的部分就是ActiveSheet.HPageBreaks.Add Before:=Range("A31")
那我们对代码进行修改,添加循环功能就可以了。
Sub 分页()
a = 10
Do While
a <= (90 - 26) * 10
b = a + 1
Cells(b, 1).Select
ActiveSheet.HPageBreaks.Add Before:=Cells(b, 1)
a = a + 10
Loop
End Sub
每10行进行一下分页,因为标签是从26开始,生成到90标签,则循环的次数就是90-26再乘10.使用vba几秒钟就可以搞定了。再打印的时候,就能确保每个箱标签打印在1张纸上了。
来顶一下
返回首页
推荐资讯
{SUM函数}:计算单元
LEFT函数:从一个文本
MID函数:从文本字符
column函数:返回一引
扫一扫微信二维码,联系作者:
相关文章
无相关信息
栏目更新
栏目热门
站内搜索:
站内
高级搜索
网站首页
|
关于我们
|
服务条款
|
广告服务
|
联系我们
|
网站地图
|
免责声明
|
豫ICP备19034924号-1
豫公网安备41010302002521号
Copyright © 2019-2023
制作表格