Excel 关于VBA中IF多条件语句的用法,虚心求教 Excel 关于VBA中IF多条件语句的用法,虚心求教
Excel \u5173\u4e8eVBA\u4e2dIF\u591a\u6761\u4ef6\u8bed\u53e5\u7684\u7528\u6cd5\uff0c\u865a\u5fc3\u6c42\u6559\u4e0e\uff1aand
\u6216\uff1aor
\u975e\uff1anot
if a=1 and b=1 then ......\uff08\u5982\u679ca=1 \u5e76\u4e14b=1\uff0c\u5219......\uff09
if a=1 or b=1 then .....\uff08\u5982\u679ca=1\u6216\u8005b=1\uff0c\u5219.........\uff09
if not a=1 then .......\uff08\u5982\u679ca\u4e0d\u662f\u7b49\u4e8e1\uff0c\u5219.......\uff0c\u5f53\u7136\u4e5f\u53ef\u6539\u4e3aa1\uff0c\u4e3e\u4f8b\u800c\u5df2\uff09
\u7ed9\u4f60\u4e2a\u7b80\u5355\u7684\uff0c\u4ee3\u7801\u53ef\u4ee5\u590d\u5236\u56fe\u4e0b\u8fb9\u7684\u3002\u590d\u6742\u7684\u9700\u8981\u9759\u4e0b\u5fc3\u6765\u597d\u597d\u5b66\u4e60\uff0c\u7f51\u4e0a\u5f88\u591a\u6559\u7a0b\u3002
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If [B1] < 8 Then
[C1] = "\u5c0f"
Else
If [B1] = 8 Then
[C1] = "\u4e2d"
Else
[C1] = "\u5927"
End If
End If
End Sub
\u5c31\u8fd9\u610f\u601d\uff1a\u5982\u679cB1<8,\u90a3\u4e48C1=\u5c0f
\u5426\u5219\uff0c\u5982\u679cB1=8,\u90a3\u4e48C1=\u4e2d
\u5426\u5219C1=\u5927
1、if语句的含义:if语句字面意思就是如果的意思,如果条件为真,那么就执行if语句里面的程序,这个程序,一般指then后面的,一个if语句可以没有end if,但绝对不能没有then,这一点是要注意的。
2、if……then……结构
该结构一般用于比较简单的判断语句执行,下面以一段实例程序来讲解。
实例:如果第一个单元格不为空,那么就弹出一个提示框“单元格不为空”。
程序:
Sub 判断语句()
If Cells(1, 1) <> "" Then MsgBox "单元格不为空"
End Sub
3、if……then……end if结构
该结构用于单选择判断语句执行,具体用法看下面实例。
实例:对于第一列的第一行到第十行单元格,作如下判断,如果单元格为空值了那么在相应的第二列单元格输出“VBA教研室”。
程序:
Sub 判断语句()
Dim i As Integer
For i = 1 To 100
If Cells(i, 1) = "" Then
Cells(i, 2) = "VBA教研室"
Exit For
End If
Next
End Sub
4、if ……then……else……end if结构
该结构用于事件只有两个可能的情况先选择的判断语句,具体见下面实例分析。
实例:对于第一列的第1,2行两个单元格做判断,如果单元格值为空,则在相应的第二列单元格输出false,否则输出Ture。
程序:
Sub 判断语句()
Dim i As Integer
For i = 1 To 2
If Cells(i, 1) = "" Then
Cells(i, 2) = "false"
Else
Cells(i, 2) = "True"
End If
Next
End Sub
5、if ……then……elseif……then……else……end if结构
该结构用于多条件判断语句执行,具体见下面实例分析
实例:对三名同学的成绩作出判断,大于等于80分的为优秀;60到80之间的为及格;0到60分之间的为不及格;0分为考试无效。
程序:
Sub 判断语句()
Dim i As Integer
For i = 2 To 7
If Cells(i, 2) >= 80 Then
Cells(i, 3) = "优秀"
ElseIf Cells(i, 2) < 80 And Cells(i, 2) >= 60 Then
Cells(i, 3) = "及格"
ElseIf Cells(i, 2) < 60 And Cells(i, 2) > 0 Then
Cells(i, 3) = "不及格"
Else
Cells(i, 3) = "考试无效"
End If
Next
End Sub
6、if语句嵌套使用
if语句可以灵活的嵌套使用的,如下面这套程序
Sub 判断语句()
Sub 判断语句()
If Cells(1, 1) <> "" Then
If Cells(1, 1) = "VBA教研室" Then
MsgBox "OK!"
Else
MsgBox "NO!"
End If
End If
End Sub
参考资料:百度经验-Excel VBA中if语句的用法
IF语句的语法:
If 条件判断语句1 Then
处理语句A
ElseIf 条件判断语句2 Then
处理语句B
Else
处理语句C
End If
其中,条件判断语句需要使用判断符,常用的判断符有“==”(相等)、“>”(大于)、“>=”(大于等于)、“<”(小于)、“<=”(小于等于)、“<>”(不等于)。
如果有多个并列的条件,可以使用“And”(逻辑与)、“Or”(逻辑或)来连接。
例子:
If xxx==xxx And yyy<>yyy Then
<...>
ElseIf xxx==yyy Or xxx<=yyy Then
<...>
Else
<...>
End If
补充:如果有多条并列条件,且要混用Or和And,不妨使用括号。
VBA中的多条件IF,一般有两种情况:
一是使用AND、OR连接多个条件,例如:
IF A1=1 AND A2=2 OR A2="" THEN
二是使用IF嵌套,例如:
IF A1=1 THEN
IF A2=2 THEN ... ELSE ...
ELSE
IF A2="" THEN ... ELSE ...
END IF
If 条件1 Then
处理
ElseIf 条件2 Then
处理
Else
处理
End If
条件与条件之间可以用 "And, Or, Not" 等。
判断符可以用 "=,<,>,<=,>=,<>" 等。
亲,如果是多条件,可以试一下 Select case 语句。
扩展阅读:if三个判断条件三个结果 ... excel vba范例讲解 ... excel vba实例详解 ... excel vba if语句 ... excel if多个条件嵌套 ... vb中if的三种写法 ... vba if else ... excel中vba代码大全 ... vba if函数多个条件怎么用 ...