日记大全

日记大全 > 句子大全

如何返回两个选项中的一个(不用if语句也可以实现)

句子大全 2023-11-25 03:29:01
相关推荐

No.1

对于条件判断,VBA编程提供了一些内置函数,如判断语句If...Then...End

、If...Then...Elseif...End等等。

if语句应用虽然方便,如果一个判断只有两个项目,非此及彼,用一个函数来进行判断,就显得更加简洁方便。

下面介绍一个函数IIF,此函数对两条件进行判断,然后根据条件返回两个结果中的一个。

No.2

IIF函数语法

IIF函数有3个参数项:

第一个Expr, 必选项,是条件计算的表达式。第二个TruePart,必选项,当条件判断为真时,返回的值或表达式。第三个FalsePart,必选项,当条件判断为假时,返回的值或表达式。可以理解为函数对条件计算表达式进行计算,如果结果为真返回第二个参数值,如果结果为假返回第三个参数值 。

No.3

下面以一个实例来了解一下,应用IIF函数之后有什么神奇之处。

上图为使用IFF函数,根据行号计算(Row)设置行间隔的不同颜色和值。

对行号进行取余计算,如果计算余数为0则设置单元格值为0,背景颜色为蓝色。

如果取余数计算结果不为0,则背景颜色为黄色,单元格值为1。

同理,可以使用IFF函数根据列号(Column)计算,设置列间隔的不同颜色和值。

如下图所示:

No.4

代码

行间隔代码

Private Sub CommandButton1_Click()Application.ScreenUpdating = FalseDim cell As Range, xcell As RangeSet cell = Range("B2:P20")cell.ClearFor Each xcell In cellWith 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 = 8End WithNext xcellApplication.ScreenUpdating = TrueEnd Sub

列间隔代码

Private Sub CommandButton2_Click()Application.ScreenUpdating = FalseDim cell As Range, xcell As RangeSet cell = Range("B2:P20")cell.ClearFor Each xcell In cellWith 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 = 8End WithNext xcellApplication.ScreenUpdating = TrueEnd 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---

阅读剩余内容
网友评论
相关内容
拓展阅读
最近更新