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