200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 如何让VBA代码适用于所有工作簿?

如何让VBA代码适用于所有工作簿?

时间:2019-12-27 13:37:09

相关推荐

如何让VBA代码适用于所有工作簿?

▌问题引入

昨天帮交流群群友解决了一个批量打印的问题,群友想让这段代码适用于所有打开的工作簿,每次在功能区点个按钮就能执行代码。

成品效果

而实现这个功能就是用Excel加载宏来实现的。

之前写VBA封装的时候,讲过加载宏,加载项他们之间的区别。简化为下图:(详细可以看我的dll封装学习笔记(一)和我的dll封装学习笔记(二))

我们这次做的就是Excel加载宏工作簿(xla或者xlam格式)。

▌解决过程

制作加载宏工作簿我们主要分为三个主要步骤:

1.修改我们已经写好的代码,以适用于加载宏工作簿。

2.将加载宏另存为xla或者xlam格式。

3.编写功能区XML代码,就是让功能区显示那个用于点击的按钮。

●步骤一:修改代码

因为要适配所有工作簿,所以不要出现具体工作表名字。默认操作的都是当前Sheet。

Sub test()Worksheets("表格1").Range("a1") = 1End Sub改成

Sub test()Range("a1") = 1End Sub

然后,我们还要实现,将sub过程关联到功能区的按钮,使得点击按钮,运行这个sub过程。我们又加了一句:control As IRibbonControl

Sub test(control As IRibbonControl)Range("a1") = 1EndSub

到此代码修改就可以了。

当然,必要的防错处理必须要有,比如不满足某个条件直接Exit Sub。这个不细说。

●步骤二:另存为xlam格式

这个没什么好说的,直接另存。需要注意的一点是,另存的时候,默认的路径是存储在加载宏工作簿路径下。

我们一般换个好找的地方,比如桌面,因为待会还要对他进行编辑。

●步骤三:设计XML代码,并压入xlam

工具:

①Custom UI Editor For Microsoft Office(获取方法,后台回复:功能区)

该工具用于压入功能区XML代码。具体XML代码怎么写,这个工具怎么使用,可以参看我原来的文章 《VBA小白也学得会的Robbion功能区》讲的很详细。

至此,加载宏就制作完成了。

▌关于加载

制作好加载宏了,怎么让所有的Excel都能适配这段代码呢?

有两种方式:

1.将做好的xlam加载宏文件放在自启动文件夹(去Office安装路径下找xlstart文件夹)

放在这个文件夹下,只要Excel启动,这个加载宏都会被加载出来。如果不想加载了,手动删除这个文件。

2.通过加载宏管理器加载

如果不想加载了,手动删除原本的文件。或者把去掉勾选这个加载宏。

推荐阅读:(点击下方标题即可跳转)Excel批量生成二维码插件重磅发布!

【Python+VBA】当蔡徐坤在Excel中打起了篮球!

Excel和Word数据交互读取(生成合同)

【答小白问】WPS到底能不能用VBA?

【收藏备用】工作簿(表)合并拆分那些事

【经验】快速学习VBA

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。