excelvba之判断语句

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

excelvba之判断语句

学习VBA

之判断语句

1. 单行形式(IF…THEN)

格式:if <逻辑表达式> then <执行语句> [:<执行语句>]… 在这里逻辑表达式为条件,当条件为真时,执行then后面的语句,如果执行的是多条,在语句中间用冒号分开(:)

例1: If 11>10 then a=a+1

例2: if 11>10 then a=a+1 : b=b+1 : c=c+1

2. 单行形式(IF…THEN…..ELSE….)

格式:if <逻辑表达式> then <执行语句> else <执行语句>

当逻辑表达式为真时,执行then后面的语句,当逻辑表达式为假时执行else 后

面的语句。

例:if 2>1 then msgbox “yes” else msgbox “no”

3. 多行形式(IF…..THEN….END)

格式:if <逻辑表达式> then

<执行语句>

[执行语句]

…….

End if

此语句运行的结果和第一条单行形式的IF语句是一样的,好处是可以在逻辑表

达式为真时,可以执行相对多条的语句,并且清晰易懂。例:if 11>10 then A=a+1

B=b+1

C=c+1

End if

4. 多行形式(IF…..THEN….ELSE….END)

格式:if <逻辑表达式> then

<执行语句>

[执行语句]

…..

Else

<执行语句>

[执行语句]

…..

End if

这个用法的结果等同于第二条单行形式,适用于比较复杂的判断语句,并清晰易

懂。

例:if 11>10 then

A=a+1

B=b+1

Else

A=a-1

B=b-1

End if

5. 多行形式(IF…..THEN….ELSEIF…..ELSE…..END)

格式:if <逻辑表达式> the

<执行语句>

[执行语句]

…..

Elseif <逻辑表达式> then

<执行语句>

[执行语句]

…..

Else

<执行语句>

[执行语句]

…..

End if

在这里当第一个逻辑表达式为假时,还可以进行elseif后面的第二种判断,当第个判断又为假时还可以进行第三种判断,直到所有的逻辑表达式都不成立后才执行else后面的语句,其中如果条件符合某个elseif后面的逻辑表达,则只执行这个elseif后面的语句。这种判断语句较为复杂,不建议初学者使用,只有能逐步熟悉掌握了以前几种判断语句的用法及步骤,这个语句才能得心应手。例: 假定当前已打开工作簿,第一个表的 A1单元格的内容为考试成绩,我们要在B1里输入根据A1成绩相对应的等级

If sheet1.range(“a1”)>90 then

Sheet1.range(“b1”)=”优”

Elseif sheet1.range(“a1”)>80 then

Sheet1.range(“b1”)=”良”

Elseif sheet1.ra nge(“a1”)>70 then

Sheet1.range(“b1”)=”中”

Else

Sheet1.range(“b1”)=”差”

End if

在这个例子里,开始时单元格的内容是全部的数字集,它可以是任何一个数字,当运行完第一个条件判断后,如果条件不成立,单元格的数字则只能是90以下的任意数字了,如果第二个条件判断不成立,那它就只能是80以下的数字了,如果所有的判断都不成立,那就只能执行else后面的语句。

在运行这一段程序的当中,并不是所有所有符合条件的语句都执行,而是优先执行最先符合条件的,执行完就退出判断语句,例如a1单元格的内容是91,符合条件的有三个,由于sheet1.range(“a1”)>90这个条件在前,那么b1单元格内就

会赋值为”优”,其余两个条件就不再做判断。反过来,如果是

sheet1.range(“a1”)>70这个条件在前,这个判断语句就只能是以这个条件为判断,即使a1单元格内为100,b1单元格也只能赋值为”中”,也就是说

sheet1.range(“a1”)>90和sheet1.range(“a1”)>80这两个条件起不了作用了。所以在编写这种判断语句时应注意逻辑表达式的先后顺序。

6. 判断语句之SELECT

格式:select case 对象

Case [is <逻辑运算符>] <变量(或常量)>

<执行语句>

[执行语句]

…..

[Case [is <逻辑运算符>] <变量(或常量)>

<执行语句>

[执行语句]

…..]

Case else

<执行语句>

[执行语句]

…..]

End select

在这里,对象可以是一个变量,也可以是指定单元格内的值,还可以是一组正确的表达式,然后通过这个对象的值能符合下面哪个case后面的值,再决定执行哪个case下面的执行语句。如果都不符合,则执行case else后面的执行语句。

例: 假定当前已打开工作簿,第一个表的 A1单元格的内容为考试成绩,我们要在B1里输入根据A1成绩相对应的等级。

Select case sheet1.[a1].value

Case is > 90

Sheet1.[b1]=”优”

Case is > 80

Sheet1.[b1]=”良”

Case is > 70

Sheet1.[b1]=”中”

Case else

相关文档
最新文档