VBA之Excel应用第六章第一节 If...Then...Else语句 📅 2026/7/12 23:41:02 《VBA之Excel应用》版权10178983是非常经典的是我推出的第七套教程定位于初级目前是第一版修订。这套教程从简单的录制宏开始讲解一直到窗体的搭建内容丰富实例众多。大家可以非常容易的掌握相关的知识这套教程共三册十七章都是我们在利用EXCEL工作过程中需要掌握的知识点希望大家能掌握利用。今日讲解的内容是VBA之Excel应用第六章第一节 If...Then...Else语句【分享成果随喜正能量】人一辈子只能靠长期去做某件事情来成就自己而不是靠某一个人来成就自己。关于这点你要么及早领悟要么等待时光给出教训逼你领悟。第六章第一节 If...Then...Else语句我们再次理解If...Then...Else语句在代码中的作用这个语句在VBA代码中随处可见对于VBA而言条件判断应用的非常灵活或者可以说是EXCEL函数的终结者当你利用VBA上手后可以不用再去寻求用EXCEL函数去解决问题了。1 If...Then...Else 语句的理解1语法If condition Then [ statements ] [ Else elsestatements ]或者可以使用块格式语法If condition Then[ statements ][ ElseIf condition-n Then[ elseifstatements ]][ Else[ elsestatements ]]End If各个参数的作用① condition 必需。一个或多个以下两种类型的表达式计算结果为 True 或 False 的数值表达式或字符串表达式。如果condition为Null, 则condition被视为False。表达式TypeOf objectname Is objecttype。其中Objectname是任何对象引用, objecttype是任何有效的对象类型。 如果objectname是objecttype指定的对象类型, 则表达式为True;否则为false。② statements 在块格式中为可选在没有Else子句的单行格式中为必需。可以是由冒号分隔的一个或多个语句在 condition 为 True 时执行。③ condition-n 可选。 与condition相同。④ elseifstatements 可选。 如果关联condition-n为True, 则执行一个或多个语句。⑤ elsestatements 可选。 如果前一个condition或condition-n表达式为True, 则执行的一个或多个语句。2块格式的If语句必须是行上的第一个语句。语句的Else、ElseIf和End If 组成部分的前面只能有一个行号或行标签。If块必须以End If语句结尾。3若要确定语句是否为块, 可以检查Then关键字后面的内容。如果同一行中出现在 Then 后面的内容不是注释该语句将被视为单行If语句。4Else 和 ElseIf子句都是可选的。一个If块中可以有任意所需数量的ElseIf子句但都必须出现在Else子句前面。If块语句可以嵌套即相互包含。5在执行If 块时将检验condition。如果condition为True将执行Then 后面的语句。如果condition为False将依次计算每个ElseIf条件。找到True条件时将执行紧跟关联的Then语句。如果所有ElseIf条件均不为True或者不存在 ElseIf 子句则执行 Else后面的语句。执行Then或Else后面的语句后将继续执行End If后面的语句。2 IF Then条件判断语句的应用我们看下面的代码是一个IF THEN条件判断语句的应用实例:Sub mynz() IF THEN 条件判断Dim myScore As Integer, myResult As StringmyScore Range(A1).ValueIf myScore 60 Then myResult 通过Range(B1).Value myResultEnd Sub代码截图代码的讲解上述代码完成一个分数的判断分数的值是写在了A1单元格中判断结果写在了B1单元格中。1) myScore Range(A1).Value 这句代码将分数储存在了变量myScore中2If myScore 60 Then myResult 通过 这句代码是用IF THEN语句对分数进行判断如果myScore 60返回的是true 那么将执行THEN 后的语句。如果同一行中出现在 Then 后面的内容不是注释该语句将被视为单行If语句。所这里的语句用的是单行语句单行语句是不需要END IF 的。如果将上述单行语句改为块语句可以做如下的改写If myScore 60 ThenmyResult 通过End If3Range(B1).Value myResult 将判断的结果写入单元格B1中。我们在单元中写入一个数值54点击运行我们看出在B1单元格中没有结果输出这是我们所不希望的。3 IF Then Else判断语句的应用为了实现各种条件的判断我们来看下面的代码Sub mynzA() IF THEN ELSE条件判断Dim myScore As Integer, myResult As StringRange(B2).Value myScore Range(A2).ValueIf myScore 60 ThenmyResult 通过ElsemyResult 失败End IfRange(B2).Value myResultEnd Sub代码的截图代码解读上述代码利用了IF THEN ELSE来进行多种条件的判断。1) If myScore 60 ThenmyResult 通过当分数值大于或者等于60那么返回的结果是通过2ElsemyResult 失败End If当是其他的情况时那么返回的结果是失败我们在B1单元格中录入数字59点击运行这时就出现了返回结果“失败”了。今日内容回向1 条件判断的格式语句有几种意义是什么2 单行条件判断和多行条件判断在语法格式上有何不同本讲内容参考程序文件工作簿06.xlsm我20多年的VBA成果全在下面的资料中