HI,大家好,我是星光。
前面三期分别给大家聊了什么是VBA、什么是VBE、如何编写VBA代码,本期再给大家聊一下——如何运行这段VBA代码?以运行上期名为“我的查询”的录制宏为例,说下四种常见的优劣各异的运行VBA代码的方式。在【开发工具】选项卡下,单击【宏】按钮,打开【宏】对话框。在该对话框中选中宏名“我的查询”。
在右侧单击【选项】按钮,打开【宏选项】对话框;设置快捷键为Ctrl+q,最后单击【确定】按钮,依次关闭对话框。
设置完成后,只需按下快捷键<Ctrl+q>,系统就会自动运行相应宏。
想象一下吧小同志,你背靠皮椅,小眼微眯,手指轻动,一个函数都不漏痕迹,只是按下快捷键<Ctrl+q>,Excel就会自动为你获取数据查询结果,是不是骚秀气满满抑或霸巴适气侧漏?
不过需要注意的是,这里设置的宏快捷键会覆盖Excel默认的快捷键。比如将宏的快捷键设置为<Ctrl+F>,<Ctrl+F>也就不再执行原来的打开【查找与替换】对话框功能了。
第2种方式:插入按钮
快捷键的方式虽好,久而不用却难免会忘,此外它也不适合广泛用于制作通用模版。此时我们可以设置一个按钮,通过它来执行指定的宏。
在【开发工具】选项卡下依次单击【插入】→【按钮(窗体控件)】按钮。在工作表中绘制一个大小随心的按钮,松开鼠标左键后,系统会自动弹出一个【指定宏】对话框,选中所需宏名,比如本例“我的查询”,单击【确定】按钮,即可将该按钮关联给宏“我的查询”。
▎小贴士
<1>:右键单击按钮,在弹出的快捷菜单中单击【编辑文字】,可以修改按钮的名称,比如修改为“朕要工作了!”
<2>:除了插入按钮外,也可以插入图形或图片等对象,实现类似关联运行宏代码的效果。
如果一个工作簿的宏命令比较多,以至于你一时间找不到相关按钮的位置,就可以使用这种方式来运行宏了。
在【开发工具】选项卡下单击【宏】按钮,在弹出的【宏】对话框中选择【我的查询】选项,单击【执行】按钮即可运行该宏。
第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的职场人关注,海量教程随学随用,随用随查。 主创:看见星光,微软全球最有价值专家、Excel图书作者、培训师。 内容:每日四文,一篇函数教程、一篇VBA教程、一个短视频小技巧、一篇杂文。
1451篇原创内容
公众号
👇本文由公众号“Excel星球”首发。