Excel VBA IF Statement: Know Your Coding
微软Excel是一款功能强大的软件,但只要有适当的技能和一点耐心,你就可以让它变得更强大。多亏了微软的Visual Basic for Application(简称VBA),你可以做到编写在Excel中执行的代码片段从而将其功能提升到新限制。本文将介绍Excel中最基本的VBA函数之一:IF功能。
IF vs. VBA IF
由于Excel是如此复杂,人们常常会错误地使用具有相似名称或语法的函数,而IF函数就是一个完美的例子。当使用IF函数作为Excel中的公式栏应用的公式时,IF函数的作用是在满足某个条件时返回True或False结果。IF的VBA版本,通常被称为IF- then或IF- then - else语句,具有类似的功能,但有两个明显的区别:
- 您可以定义返回值或设置在满足条件时要执行的某些操作;
- 您可以添加多个条件。
如您所见,VBA版本更加强大,允许您创建真正复杂的函数。这Excel VBA的博客文章将允许你更好地理解公式,宏和VBA编程。
基本VBA IF语法
基本if语句的语法非常简单:
如果状况然后结果
这意味着,如果满足条件,将显示已定义的结果或将采取定义的操作。如果不符合条件,VBA将无意义。但是,即使不通过添加条件,您可以定义要执行的操作其他的公式的论证:
如果状况然后结果别的result2
在这种情况下,如果满足条件(该条件)包含有关如何进行的说明(然后,以及如何继续,如果它不是(the别的参数)。让我们来看一个VBA IF语句的实际例子:
Sub IF_ELSE_FUNCTION() If 1 > 4 Then MsgBox "1 is > 4" Else: MsgBox "1 is < 4" End If结束
此代码片段只是检查条件是否满足,在本例中,1是否大于4,并显示适当的消息。虽然在这个场景中,条件是数字之间的简单关系,但您可以用单元格、行甚至函数替换数字,VBA IF语句的工作原理是一样的。这个两部分课程在VBA和宏的Excel将教你如何创建复杂的代码段,并使它们适应您的需要。
eleesif
这个角色eleesif参数是允许您指定如果未满足第一个条件,请指定要检查的其他条件。VBA的语法如果语句包括一个eleesif参数是这样的:
如果状况然后结果eleesifcondition2然后result2别的result3
有什么好处eleesif论据是,它可以根据需要使用多次,这意味着您的语句可以有单个eleesif论点,十eleesif争论或一千个eleesif论据 - 这取决于你。
带有多个IF语句的示例eleesif参数看起来像这样:
子IF_ELSEIF_ELSE_FUNCTION()如果1> 4则MSGBOX“1大于4”ELSEIF 2> 4然后MSGBOX“2大于4”ELSEIF 3> 4然后MSGBOX“3大于4”其他:MSGBOX“1,2如果结束子分子,则3的3个“结束小于4”
在此示例中,Excel将处理第一个语句,请注意它是假的,然后移动到下一个语句;既然eleesif实参为假,结果为别的参数将显示为IF语句的最终结果。
有两件事要记住eleesif参数:
- eleesif参数的解析顺序是按它们被编写的顺序进行的,所以您应该始终编写eleesif具有最高概率的参数首先是避免不必要的解析,从而导致更快地执行代码;
- eleesif参数只能放在最终参数之前,参数只能放在最终参数之前别的争论;如果您需要创建更复杂的函数,请参阅下一章,了解嵌套参数或查看此内容Ultimate Excel VBA在线课程。
嵌套的陈述
如果您在工作中使用复杂的公式,您可能会遇到一个场景,在其中您需要使用If语句的结果,因此对另一个语句进行了结果;由于Excel跳到If语句的结尾一次别的或者eleesif参数满足后,您将需要创建一个嵌套语句来完成工作。嵌套语句基本上是包含在其他语句中的简单语句。
类中可以包含嵌套语句然后或者别的主要陈述的论点。确保嵌套参数完全包含在该section中是非常重要的,否则整个语句可能根本无法工作。
有了这个,让我们看一下嵌套vba的一个例子:
如果工资> 15000和薪水<35000,则归档if_nested_function()这是一个嵌套语句If HasKids = "Yes" Then getTaxRate = 0.10 Else getTaxRate = 0.20结束If ElseIf salary >= 35000 And salary < 75000 Then这是另一个嵌套语句如果haskids =“是”那么gettaxrate = 0.22 else gettaxrate = 0.34结束如果if薪水> = 75000那么这是另一个嵌套语句如果HasKids = "Yes"则getTaxRate = 0.44 Else getTaxRate = 0.48结束如果Else getTaxRate = 0结束
此嵌套陈述根据其薪水计算员工的税率,以及他们是否有孩子。正如您所看到的,嵌套功能允许您对您的公式进行更多的控制,以成本更复杂。
创建嵌套陈述时有两种主要的事情可以记住:
- 总是关闭嵌套的功能,使用如果争论;
- 首先创建嵌套语句,然后再执行主语句。
查看此Microsoft Visual Basic for Excel Online课程来更好地理解嵌套语句和其他你可以用VBA为Excel做的有趣的事情。