最近有小伙伴们提到了关于Excel的打印,在之前呢,我也是接触过Excel的打印
但是对于这一方面实际的使用场景,还是比较的模糊,而这次正好有小伙伴提到了这个需求
打印需求暂时和我们另外一个系列Excel VBA有没有太大的联系,所以我们就放在这里来和大家分享下
如何操作Excel的打印。
说到Excel的打印,肯定小伙伴就会不屑啦,Excel的打印,谁不会啊,我还知道快捷键CTRL+P呢
莫方,莫方,静下心来且听我慢慢道来
常规的Excel的打印呢,是这样的界面
可以设置的参数,都展示在左边了,但是并没有我们要设置的场景,我们要设置的场景是怎么样的呢?
按照奇数页或者偶数页将数据打印出来
听说2010的Excel可以设置奇数页/偶数页单独打印,但是设置也是比较的麻烦
所以这里我们直接学习一下VBA的用法
非常的方便,可以免去中间很多的设置过程
废话不多说,我们直接看看代码
代码区
Sub 奇偶页分别打印() Dim i%, Ps% Ps = ExecuteExcel4Macro("GET.DOCUMENT(50)") '总页数 MsgBox "现在打印奇数页,按确定开始." For i = 1 To Ps Step 2 ActiveSheet.PrintOut from:=i, To:=i Next i 'MsgBox "现在打印偶数页,按确定开始." 'For i = 2 To Ps Step 2 'ActiveSheet.PrintOut from:=i, To:=i 'Next iEnd Sub
代码已经奉上,是不是很简单
大家更想要看到的是实现的效果吧,这里我们就来测试下。
这里呢,我们提前copy好了5份代码,并且按照预设的打印纸的大小,分好了位置,最终的效果就是
一个代码块是打印在一个打印纸上的
那么这里我们来验证下
我们现在验证下我们只打印奇数页,也就是打印出来的,应该是test1,test3,test5
这三个模块,来看看实际效果
我们可以看到,他是连着打出来了3张,并且正好是我们之前所说的,对应三个模块
分别是test1,test3,test5
那么我们如何尝试下打出偶数页的呢?
那就是test2,test4咯
测试下
现在就变成仅打印出来2张了,非常的完美。
代码解析
那么我们来看看代码
其实,今天的代码还是很简单的,我们来看看
唯一一个比较困难,比较难理解地方已经做好了备注了
那就是获取当前Excel的打印页面的总页数
Ps = ExecuteExcel4Macro("GET.DOCUMENT(50)") '总页数
他的作用就和他的代码备注一样,非常直接
就是得到当前打印的总页数,只有知道了从页数,才可以知道这个奇数,偶数到底是多少结尾
比方说你有100张,你奇数就是一直持续到50张,而如果你有5张,那奇数就只有3张了。
所以结果要根据这个总页数来决定的
那么有了总页数之后,就很简单了。
后面就是遍历循环即可
怎么样,VBA是不是很神通广大呢
4000520066 欢迎批评指正
All Rights Reserved 新浪公司 版权所有