[烟花原创]VBA零基础之005判断循环及GOTO语句
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Navigation:
【烟花原创】VBA零基础之第14篇 IF...Then..Else
【烟花原创】VBA零基础之第15篇 Select Case 语句
【烟花原创】VBA零基础之第16篇 For...Next循环
【烟花原创】VBA零基础之第17篇Do…Loop循环
【烟花原创】VBA零基础之第18篇Do…Loop循环
【烟花原创】VBA零基础之第19篇 Goto语句
【烟花原创】VBA零基础之第20篇过程调用
【烟花原创】VBA零基础之第14篇 IF...Then..Else
前面讲了过程的声明,变量和常量的声明,以及赋值语句。今天咱们聊聊IF…Then…Else语句。
在工作表中,写公式时大家对IF函数应该不陌生,根据条件的不同,返回不同的值。
在VBA中,我们通过使用IF语句实现根据表达式的值有条件的执行一组语句。
语法
单行形式
IF 条件 Then 语句1 Else 语句2
条件一般为数据表达式或字符串表达式,其运算结果为True或False。
在没有Else子句时,语句1则为必选参数。有Else语句时语句2则为必选参数
Dim a As Integer, b As Integer
a= 10
b= 20
If a > b Then Else MsgBox "a小于b"
Rem 省略语句1
If a < b Then MsgBox "a大于b"
REM 省略了ELSE子句
IF a=b then msgobx "a等于b“ else msgbox "a不等于b”
REM 语句1,语句2都具备。
在单行模式下也可以执行多条语句。要求所有的语句必须在同一行上并且以冒号分开
Dim a As Integer, b As Integer, c As Boolean
a= 10
b= 20
If a > b Then Else MsgBox "a b
块形式:
提供更强的结构化与适应性,并且通常也是比较容易阅读、维护及调试。
要决定某个语句是否为一个 If 块,可检查 Then 关键字之后是什么。
如果在 Then 同一行之后,还有其它非注释的内容,则此语句就是单行形式的 If 语句。
简单的IF块:
If 条件 Then
语句1
…
End if
例如:
Dim a As Integer, b As Integer
a= 10
b= 20
If a > b Then
MsgBox "a小于b"
End IF
复杂的IF块
If 条件 then
语句1
Elseif 条件2 Then
语句2
Elseif 条件3 Then
语句3
Else
其他语句…
End if
当程序运行到一个 If 块,条件1 将被测试。如果条件1 为 True,则在 Then 之后的语句会被执行。
如果条件1 为 False,则每个 ElseIf 部分的条件式(如果有的话)会依次计算并加以测试。
如果找到某个为 True 的条件时,则其紧接在相关的 Then 之后的语句会被执行。
如果没有一个 ElseIf 条件式为 True(或是根本就没有 ElseIf 子句),则程序会执行 Else 部分的语句。
而在执行完 Then 或 Else 之后的语句后,会从 End If 之后的语句继续执行。
Else 和 ElseIf 子句都是可选的。在 If 块中,可以放置任意多个ElseIf 子句,但是都必须在 Else 子句之前。
例如:
Dim lChenji As Byte
Dim strResult As String
lChenji = 50
If lChenji > 90 Then
'条件1:成绩是否大于90分
strResult = "优秀"
ElseIf lChenji > 80 Then
'条件2:成绩是否大于80分
strResult = "良好"
ElseIf lChenji >= 60 Then
'条件3:成绩是否大于等于60分
strResult = "及格"
Else
'所有以上条件都不满足时,不及格
strResult = "不及格"
End If
MsgBox strResult
另外If 块也能像IF函数实现嵌套,还是上面的例子,改成IF嵌套
Dim lChenji As Byte
Dim strResult As String
lChenji = 80
If lChenji >= 60 Then
'先判断成绩是否及格
If lChenji > 90 Then
'子条件1:成绩是否大于90分
strResult = "优秀"
ElseIf lChenji > 80 Then
'子条件2:成绩是否大于80分
strResult = "良好"
Else
'上述子条件不满足的情况下
strResult = "及格"
End If
Else
'不及格
strResult = "不及格"
End If
MsgBox strResult
在IF多重判断的情况下,对于条件的使用一定要严谨。
【烟花原创】VBA零基础之第15篇 Select Case 语句
上一篇的咱们聊了IF…Then…Else语句,在块形式的IF判断中,如果条件比较多,IF…Then…Else 语句会计算每个Elseif 语句的表达式,另外当条件多时,Elseif对于代码的可读性大打折扣。
今天我们聊聊Select Case语句,在这些方面可以弥补IF…Then..Else不足。
先看看Select case的语法:
Select Case 测试表达式
Case 表达式列表1
语句1
Case 表达式列表2
语句2
Case 表达式列表n
语句n
Case Else
语句
End Select
测试表达式:必要参数,任何数值表达式,字符串表达式或逻辑表达式
表达式列表:如果有Case出现,则为必要参数。
形式有以下几种:
A.表达式