运行VBA代码的四种常用方法

每天一篇Excel技术图文
微信公众号:Excel星球
NO.660-走你!VBA
作者:看见星光
微博:EXCELers / 知识星球:Excel

HI,大家好,我是星光。

前面三期分别给大家聊了什么是VBA、什么是VBE、如何编写VBA代码,本期再给大家聊一下——如何运行这段VBA代码?
以运行上期名为“我的查询”的录制宏为例,说下四种常见的优劣各异的运行VBA代码的方式。
第1种方式:快捷键
在【开发工具】选项卡下,单击【宏】按钮,打开【宏】对话框。在该对话框中选中宏名“我的查询”。

在右侧单击【选项】按钮,打开【宏选项】对话框;设置快捷键为Ctrl+q,最后单击【确定】按钮,依次关闭对话框。

设置完成后,只需按下快捷键<Ctrl+q>,系统就会自动运行相应宏。

想象一下吧小同志,你背靠皮椅,小眼微眯,手指轻动,一个函数都不漏痕迹,只是按下快捷键<Ctrl+q>,Excel就会自动为你获取数据查询结果,是不是骚秀气满满抑或霸巴适气侧漏?

不过需要注意的是,这里设置的宏快捷键会覆盖Excel默认的快捷键。比如将宏的快捷键设置为<Ctrl+F>,<Ctrl+F>也就不再执行原来的打开【查找与替换】对话框功能了。

第2种方式:插入按钮

快捷键的方式虽好,久而不用却难免会忘,此外它也不适合广泛用于制作通用模版。此时我们可以设置一个按钮,通过它来执行指定的宏。

在【开发工具】选项卡下依次单击【插入】→【按钮(窗体控件)】按钮。在工作表中绘制一个大小随心的按钮,松开鼠标左键后,系统会自动弹出一个【指定宏】对话框,选中所需宏名,比如本例“我的查询”,单击【确定】按钮,即可将该按钮关联给宏“我的查询”。

设置完成后,单击该按钮,即可执行相应的宏代码。
小贴士

<1>:右键单击按钮,在弹出的快捷菜单中单击【编辑文字】,可以修改按钮的名称,比如修改为“朕要工作了!”

<2>:除了插入按钮外,也可以插入图形或图片等对象,实现类似关联运行宏代码的效果。

第3种方式:功能区宏按钮
如果一个工作簿的宏命令比较多,以至于你一时间找不到相关按钮的位置,就可以使用这种方式来运行宏了。

在【开发工具】选项卡下单击【宏】按钮,在弹出的【宏】对话框中选择【我的查询】选项,单击【执行】按钮即可运行该宏。

第4种方式:在VBE中运行宏

在代码开发过程中,经常需要多次运行和调式VBA代码,此时就需要在VBE中直接运行宏。

单击“我的查询”过程代码的任意位置进入编辑状态,然后单击工具栏上的【运行子过程/用户窗体】按钮,或者按快捷键<F5>,即可运行该过程代码。

……

上面咱们聊了运行宏的4种方式,但是有个姓慕容的姑娘说过,爱情不是你想来,想来它就来,宏也不是你想运行……它就一定能运行。

有时候你打开一个工作簿,单击按钮,会弹出如下提示框。

出现该提示框的原因通常有两种,一种是该按钮没有指定宏(或者曾经指定过宏,但相关宏被删除/更名了),另一种是该工作簿所有的宏确实被禁用了——这就要聊到宏的安全性问题。
设置宏的安全性
咱们在前面什么是VBA里讲过,在很多人眼中宏是病毒的代名词,这是由于宏在给Office用户带来极大便利的同时,也带来了潜在的风险。它可以轻而易举的控制或运行电脑中的应用程序,生成计算机病毒或恶意功能,比如咱们曾经分享过的那篇小代码:

如何制作自动自杀和杀死其它文件的Excel工作簿?

有基没有情于此,Excel通常默认不允许运行工作簿中的宏,并提供了【宏安全性设置】功能。

在【开发工具】选项卡下单击【宏安全性】按钮,可以打开【信任中心】对话框。在宏设置下,可以看到如下图所示的四个选项。

一般来说,推荐使用【禁用所有宏,并发出通知】选项。
启用该选项后,打开保存在非受信任位置的包含宏的工作簿时,在Excel功能区下方会显示【安全警告】消息栏,告知用户工作簿中的宏已经被禁用,是否【启用内容】。
当用户在消息栏中选择【启用内容】后,该文件会自动成为受信任的文档,再次打开该文件,系统不再显示【安全警告】消息栏。

当用户没有选择【启用内容】,而是直接进行了其它Excel窗口的操作,【安全警告】的消息框会自动消失,并默认用户不选择启用宏。此时如果你又想启用宏了——不好意思,爱情不是你想来想来他就来,麻烦你关闭重启Excel工作簿再和【安全警告】的消息框打个招呼吧~

……

如何保存带宏的文件

最后一个问题:当我们编写了一段宏代码,运行测试成功后,就需要将文件保存——那么如何保存包含宏代码的Excel文件?
这问题问的似乎有点儿傻气,但以我常年扎根底层的沧桑而忧郁的双眸来看,还是很有必要说一下地——熊迪,算一卦?加入我的Excel星球,只需要219元,即可畅通无阻学习Excel方方面面~Excel知识星球加入及使用指南

……在Excel基础入门教程的篇章里咱们曾经讲过,Excel的文件格式类型有很多种,最常用的是xlsx,但这种格式的文件并不支持保存宏代码,它会自动抹除VBE或其它位置的宏。

只有古老的03版Excel、二进制工作簿(xlsb)和以字母“m”结尾的文件格式(xlsm,xltm,xlam)才可以用于保存宏代码的文件,其中最常使用的是xlsm格式。

——因此,敲黑板,在你学习VBA的过程中,请务必先将工作簿另存为xlsm格式。

为什么这么说?
我有个叫随风小妞的前女朋友,经常不记得将Excel文件另存为xlsm格式,而是直接使用xlsx格式编写代码。每当代码临近完成调试,却有不小机率不幸死机,于是代码全军覆没尸骨无存。你想想,你想想他当场哭的梨花带雨的模样,岂是一个惨字了得?

希望你不要重蹈他的覆辙,更不要哭的梨花带雨我见不怜……

致安,愿你不再因Excel而烦恼,我是星光,挥手再贱。

上千篇原创教程

随学随用 随用随学👆

需要系统学习Excel,却找不到优质教程?学习Excel的过程中遇到疑难问题,却找不到人及时作出解答?加入我的付费社群,和微软最有价值专家(MVP)全面精进Excel,学习+答疑都不再是问题……

👇👇👇

加入我的Excel会员,全面学习Excel
透视表 函数 图表 VBA PQ想学啥学啥
👀

Excel星球

建议常用Excel的职场人关注,海量教程随学随用,随用随查。 主创:看见星光,微软全球最有价值专家、Excel图书作者、培训师。 内容:每日四文,一篇函数教程、一篇VBA教程、一个短视频小技巧、一篇杂文。
1451篇原创内容
公众号

👇本文由公众号“Excel星球”首发。

(0)

相关推荐