《VBA之Excel应用》(版权10178983)是非常经典的,是我推出的第七套教程,定位于初级,目前是第一版修订。这套教程从简单的录制宏开始讲解,一直到窗体的搭建,内容丰富,实例众多。大家可以非常容易的掌握相关的知识,这套教程共三册,十七章,都是我们在利用EXCEL工作过程中需要掌握的知识点,希望大家能掌握利用。今日讲解的内容是VBA之Excel应用第五章第二节Option Explicit选项显式

【分享成果,随喜正能量】沉默,可以让混乱的心,变得清澈。沉默,是城府,是睿智,是内涵;沉默,是最后的清高,也是最后的自由。
第五章第二节Option Explicit选项显式
大家好,我们继续讲解VBA中有关变量的相关知识,在上一节中,我们了解到变量有许多的类型,我们可以在代码的开始声明在代码中要利用到的变量,但在实际代码书写中往往我们会有遗漏变量声明的情况,有没有办法让程序自检完成这项工作呢?是的,我们可以做到,这就是使用“要求变量声明”,强制我们在代码中声明所有变量。
如下的截图,我们在VBE窗口,点击工具,选项,勾选如下的“要求变量声明”,即可以达到要求用户强制声明的目的:

1Option Explicit 语句
此语句在模块级别使用, 以强制显式声明该模块中的所有变量。如果使用了Option Explicit语句, 则该语句必须出现在模块中的任何过程之前。
当Option Explicit出现在模块中时, 必须使用Dim、Private、Public、ReDim或Static语句显式声明所有变量。如果您要使用未声明的变量名称,则会在编译时出现错误。
如果您没有使用“Option Explicit”语句,所有未声明的变量都将为“Variant”类型。
l使用“Option Explicit”可以避免错误输入现有变量的名称,或避免变量在代码中出现混淆。
2Option Explicit 语句的应用
我们来看OptionExplicit 语句的应用,如下面的代码:
Sub mynzD()
DimmyVar As Integer
myVar= 10
Range("A1").Value= mVar
End Sub
代码的运行结果:

当我们点击运行按钮时,在“A1”单元格中并没有出现10,为什么呢?我们回头仔细地检查代码,发现是我们代码录入错了,我们不小心拼错了myVar。因此,Excel VBA将未声明的空变量mVar的值放置到单元格A1中。
如下的错误显示截图:

当使用Option Explicit时,上面的代码行会产生一个错误,因为我们没有声明变量mVar。
如下的代码及运行情况:
代码:
Option Explicit
Sub mynzD() '强制显式声明该模块中的所有变量
DimmyVar As Integer
myVar= 10
Range("A1").Value= mVar
End Sub
当我们点击运行时,会出现下面的结果:

就会提示我们有变量没有被定义,这时我们就会发现代码的错误了。只要我们点击确定后,修正这个错误即可。
lOption Explicit选项显式不会自动添加到现有的Excel文件。如果您想使用它,只需在写代码时勾选本讲第一个截图的“要求变量声明”即可。
3写代码的建议
我们在写代码的时候,是否必须要勾选这个选项呢?我的建议是根据实际情况而定,不一定必须勾选这个选项,在我的实际代码中,我也很少勾选这个选项。为什么呢?这是VBA定位的问题。
VBA是利用Office实现个人小型办公自动化的有效手段(工具)。这是我对VBA的应用界定。在取代OFFICE新的办公软件没有到来之前,谁能在数据处理方面做到极致,谁就是王者。其中登峰至极的技能非VBA莫属!VBA是我们应用的一种工具,这种工具是面向个人小型办公自动化的,一般情况下,我们没有必要要求VBA很多。这一点随着大家学习的深入会理解的更加深入。
今日内容回向:
1)什么是Option Explicit语句?
2)Option Explicit语句的作用是什么?
本讲内容参考程序文件:工作簿05.xlsm
我20多年的VBA成果全在下面的资料中:




夜雨聆风