怎样才能跳出if语句(如何返回两个选项中的一个)
怎样才能跳出if语句(如何返回两个选项中的一个)上图为使用IFF函数,根据行号计算(Row)设置行间隔的不同颜色和值。下面以一个实例来了解一下,应用IIF函数之后有什么神奇之处。IIF函数语法IIF函数有3个参数项:可以理解为函数对条件计算表达式进行计算,如果结果为真返回第二个参数值,如果结果为假返回第三个参数值 。
No.1对于条件判断,VBA编程提供了一些内置函数,如判断语句If...Then...End
、If...Then...Elseif...End等等。
if语句应用虽然方便,如果一个判断只有两个项目,非此及彼,用一个函数来进行判断,就显得更加简洁方便。
下面介绍一个函数IIF,此函数对两条件进行判断,然后根据条件返回两个结果中的一个。
No.2IIF函数语法
IIF函数有3个参数项:
- 第一个Expr, 必选项,是条件计算的表达式。
- 第二个TruePart,必选项,当条件判断为真时,返回的值或表达式。
- 第三个FalsePart,必选项,当条件判断为假时,返回的值或表达式。
可以理解为函数对条件计算表达式进行计算,如果结果为真返回第二个参数值,如果结果为假返回第三个参数值 。
No.3下面以一个实例来了解一下,应用IIF函数之后有什么神奇之处。
上图为使用IFF函数,根据行号计算(Row)设置行间隔的不同颜色和值。
对行号进行取余计算,如果计算余数为0则设置单元格值为0,背景颜色为蓝色。
如果取余数计算结果不为0,则背景颜色为黄色,单元格值为1。
同理,可以使用IFF函数根据列号(Column)计算,设置列间隔的不同颜色和值。
如下图所示:
No.4代码
行间隔代码
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim cell As Range xcell As Range
Set cell = Range("B2:P20")
cell.Clear
For Each xcell In cell
With xcell
.Value = IIf(xcell.Row Mod 2 0 1)
.Interior.ColorIndex = IIf(xcell.Row Mod 2 8 6)
.Borders(xlEdgeBottom).LineStyle = IIf(xcell.Row Mod 2 1 0)
.RowHeight = 20
.ColumnWidth = 8
End With
Next xcell
Application.ScreenUpdating = True
End Sub
列间隔代码
Private Sub CommandButton2_Click()
Application.ScreenUpdating = False
Dim cell As Range xcell As Range
Set cell = Range("B2:P20")
cell.Clear
For Each xcell In cell
With xcell
.Value = IIf(xcell.Column Mod 2 0 1)
.Interior.ColorIndex = IIf(xcell.Column Mod 2 14 19)
.Borders(xlEdgeRight).LineStyle = IIf(xcell.Column Mod 2 1 0)
.RowHeight = 20
.ColumnWidth = 8
End With
Next xcell
Application.ScreenUpdating = True
End Sub
两个功能代码大同小异,只有在参数Expr表达式有一些不同,一个行除以2求余数,另一个列号除以2求余数。
Rang.Value = IIf(xcell.Row Mod 2 0 1)
表达式:xcel.Row Mod 2'求余数
真:0
假:1
如果表达式值为真,就返回0,假返回1。
结尾
IIF函数具有很好的特殊应用性,二选一的情况下,不必要使用If..Else语句。
If..Else语句应用于多选选择情况下,如果条件成立,否则就...。
不是二选一的功能,它是如果条件成立就不定其它的功能,所以区别还是很大的。
欢迎关注、收藏
---END---