如何运行VBA代码?

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而烦恼,我是星光,挥手再贱。

(0)

相关推荐

  • 个人宏工作簿使VBA代码在本机任何工作簿都可用

    听语音原创|浏览:9814|更新:2014-03-04 12:37 1 2 3 4 5 6 7分步阅读Excel中使用VBA代码经常能高效率的解决工作中的各种重复性劳动,提高效率.但是对于广大不太懂代 ...

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

    每天一篇Excel技术图文 微信公众号:Excel星球 NO.660-走你!VBA 作者:看见星光  微博:EXCELers / 知识星球:Excel HI,大家好,我是星光. 前面三期分别给大家聊了 ...

  • 如何实现打开工作簿就自动运行VBA代码?

    问:如下图所示的工作表,我希望在打开该工作簿时,用户能看到一条关于该工作簿用途的提示消息,如何编写VBA代码? 答:有两种实现方法. 第一种,使用Workbook_Open事件.代码如下: Priva ...

  • 在VBA代码运行以后,调用【目标文件夹】的方法

    首先要介绍,在VBA代码运行以后,调用[目标文件夹]的方法:① 微软Excel VBA 默认选择文件夹的Dialog对话框Sub ListFilesTest()With Application.Fil ...

  • VBA代码库11:强制用户启用宏(续)

    excelperfect 在<VBA代码库10:强制用户启用宏>中,讲解了一段用户在打开工作簿时必须启用宏才能使用工作簿功能的代码.本文给出另一段同样可以实现强制用户启用宏的代码. 如果用 ...

  • VBA代码库10:强制用户启用宏

    有时,必须确保用户在打开工作簿时启用宏,否则就不能实现工作簿的效果.由于无法使用宏去打开宏,因此需要一种确保用户启用宏的技术.下面讲解的方法隐藏除"欢迎"工作表(告诉用户启用宏)之 ...

  • excelvba拆分表格视频:编辑vba代码按数据列智能拆分表格

    excelvba拆分表格视频|excel智能拆分表格视频|excel按数据列拆分视频|excel编辑vba代码视频 本视频教程由部落窝教育分享.

  • VBA代码编辑器(包含VBA智能排版插件)

    原始出处:www.cnblogs.com/Charltsing/p/SmartIndenter64.html 作者QQ: 564955427 从2016年6月本程序发布以来,已经有数万名VBA开发者测 ...

  • 写VBA代码还在一个个敲字母? 你太OUT了

    VBA神键手智能输入提示使用说明 下载地址详见原文链接 或者公众号主页回复 代码助手 VBA神键手输入提示通过对预置词库,以及代码库的模糊搜索提示,实现极速编程体验,且支持中文拼音首字母搜索,常用代码 ...

  • Excel多表合并一定要用VBA代码吗?

    工作中有时候需要将多张工作表汇总到一张工作表,这个问题在我的Excel书<Excel高手捷径:一招鲜,吃遍天>中第118招和119招介绍了用VBA代码实现.本文另辟蹊径用函数和公式瞬间实现 ...