在 Excel VBA 里,条件判断就是让代码根据不同情况执行不同操作,核心就 3 个语法:If...Then、If...Then...Else、Select Case,简单易懂,直接照着用就行。一、最基础:If...Then 语句
作用:满足条件就执行一段代码,不满足就跳过。
语法
If 条件 Then
' 条件为 True(成立)时执行的代码
End If
示例:判断 A1 单元格是否大于 60
Sub 判断成绩()
' 如果A1的值大于60
If Range("A1").Value >60Then
' 在B1单元格填写“及格”
Range("B1").Value ="及格"
End If
End Sub
二、二选一:If...Then...Else 语句
作用:条件成立执行一段代码,不成立执行另一段代码(非此即彼)。
语法
If 条件 Then
' 条件成立执行
Else
' 条件不成立执行
End If
示例:判断及格 / 不及格
Sub 成绩判断()
If Range("A1").Value >=60Then
Range("B1").Value ="及格"
Else
Range("B1").Value ="不及格"
End If
End Sub
三、多条件:If...Then...ElseIf 语句
作用:有多个条件时用,从上到下依次判断,满足第一个就停止。
语法
If 条件1Then
' 条件1成立
ElseIf 条件2Then
' 条件2成立
ElseIf 条件3Then
' 条件3成立
Else
' 所有条件都不成立
End If
示例:成绩评级(优 / 良 / 及格 / 不及格)
Sub 成绩评级()
Dim 成绩 AsInteger
成绩 = Range("A1").Value ' 把A1的值赋值给变量
If 成绩 >=90Then
Range("B1").Value ="优秀"
ElseIf 成绩 >=80Then
Range("B1").Value ="良好"
ElseIf 成绩 >=60Then
Range("B1").Value ="及格"
Else
Range("B1").Value ="不及格"
End If
End Sub
四、多条件并列:And / Or 关键字
当需要同时满足多个条件,或满足任意一个条件时用:
示例 1:And(同时满足)
' 判断:成绩大于80 且 小于90
If 成绩 >80 And 成绩 <90 Then
Range("B1").Value ="良好"
End If
示例 2:Or(满足其一)
' 判断:成绩小于60 或 缺考
If 成绩 <60 Or Range("A1").Value ="缺考" Then
Range("B1").Value ="不及格"
End If
五、多分支选择:Select Case 语句
作用:比 If 更简洁,专门用于一个变量匹配多个固定值 / 范围(比如等级、状态、分类)。
语法
Select Case 变量/单元格
Case 值1
' 代码
Case 值2
' 代码
Case Else
' 都不匹配
End Select
示例:根据等级判断
Sub 等级判断()
Dim 等级 AsString
等级 = Range("A1").Value
Select Case 等级
Case "A"
Range("B1").Value ="优秀"
Case "B"
Range("B1").Value ="良好"
Case "C"
Range("B1").Value ="及格"
Case Else
Range("B1").Value ="无效等级"
End Select
End Sub
进阶:Case 支持范围判断
Select Case 成绩
Case Is>=90
Range("B1")="优秀"
Case 80 To 89
Range("B1")="良好"
Case 60 To 79
Range("B1")="及格"
Case Else
Range("B1")="不及格"
End Select
六、常用判断条件符号
VBA 里的比较运算符,直接记这 6 个:
| | |
|---|
= | | A=10 |
<> | | A<>0 |
> | | A>60 |
< | | A<60 |
>= | | A>=60 |
<= | | A<=100 |
七、极简写法:单行 If(代码只有一句时)
如果满足条件后只执行一行代码,可以不用写 End If,更简洁:
' 单行写法
If Range("A1")>60 Then Range("B1")="及格"
' 带 Else 的单行写法
If Range("A1")>60 Then Range("B1")="及格" Else Range("B1")="不及格"
总结
- 多个条件 → 用
If...ElseIf 或 Select Case - 多条件并列 → 用
And(同时满足)/ Or(任一满足)