[烟花原创]VBA零基础之005判断循环及GOTO语句

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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.表达式

相关文档
最新文档