精华内容
下载资源
问答
  • 本节课主要讲解语法篇的第一篇,IF函数的当中的IF语句单一条件判断和多条件判断的使用细节。一、IF语句单一条件判断:假设:如图第二部分,当 I3>=90时,J3为通过,反之为不通过。代码如下:Sub IF单一条件判断()...

    本节课主要讲解语法篇的第一篇,IF函数的当中的IF语句单一条件判断和多条件判断的使用细节。

    一、IF语句单一条件判断:

    d50c08f262f063e60dd8afb874b48752.png

    假设:如图第二部分,当 I3>=90时,J3为通过,反之为不通过。

    20100f8045598e127b24b80c97308928.gif

    代码如下:

    Sub IF单一条件判断()

    If Sheet1.Range("I3") >= 90 Then

    Sheet1.Range("j3") = "通过"

    Else

    Sheet1.Range("j3") = "不通过"

    End If

    End Sub

    一、IF语句多条件判断:

    d50c08f262f063e60dd8afb874b48752.png

    假设:如图第一部分,当 B3>=90时,C3为良好;当 B3>=80时,C3为合格,反之为不合格。

    8499ed0a79a8f0b016d7d27005a0f0e2.gif

    代码如下:

    Sub IF多条件判断()

    If Sheet1.Range("B3") >= 90 Then

    Sheet1.Range("C3") = "优秀"

    ElseIf Sheet1.Range("B3") >= 80 Then

    Sheet1.Range("C3") = "合格"

    Else

    Sheet1.Range("C3") = "不合格"

    End If

    End Sub

    三、IF语句总结:

    1.单行形式1(If...Then)

    1.1 If 条件判断 Then 条件成立结果;

    1.2 在单行形式中,按照 If...Then 判断的结果也可以执行多条语句;

    1.3所有语句必须在同一行上并且以冒号分开。

    如:

    Sub test()

    If 1 > 10 Then a = 1: b = 2: c = 3

    End Sub

    2. 单行形式2

    If 条件判断 Then 条件成立 Else 条件不成立。

    如:

    Sub test2()

    If 1 > 1 Then MsgBox "yes" Else MsgBox "no"

    End Sub

    3.块形式(If...Then…End)

    If 条件判断 Then

    条件成立结果

    End If

    如:

    Sub test3()

    If 11 > 10 Then

    a = 1 + a

    b = 1 + a

    c = 1 + b

    End If

    End Sub

    4.块形式的If嵌套

    If 条件判断 Then

    成立时的结果

    ElseIf 条件判断 Then

    成立时的结果

    ……

    Else

    不成立时的结果

    End If

    如:

    Sub IF多条件判断()

    If Sheet1.Range("B3") >= 90 Then

    Sheet1.Range("C3") = "优秀"

    ElseIf Sheet1.Range("B3") >= 80 Then

    Sheet1.Range("C3") = "合格"

    Else

    Sheet1.Range("C3") = "不合格"

    End If

    End Sub

    展开全文
  • 分支判断语句(典型的就是指if)--- 按顺序判断,但不按顺序执行,只选择性执行,选择执行1个分支 循环语句 1.2 理解分支条件语句block内部,也是从上往下执行 分支语句是有序的 是从上往下执行的 所以很...

    一 理解分支条件语句

    1.1 VBA里的3种语句

    • 顺序执行的block
    • 分支判断语句(典型的就是指if)--- 按顺序判断,但不按顺序执行,只选择性执行,选择执行1个分支
    • 循环语句

     

    1.2 理解分支条件语句block内部,也是从上往下执行

    • 分支语句是有序的
    • 是从上往下执行的
    • 所以很多判断逻辑,都得基于这个设计基础考虑

     

    1.3 多层条件分支语句的嵌套(先小后大)

    • 第1层(最外层):最特殊,最严格,最小范围
    • 第2层:次特殊,次严格,范围较小
    • 。。。。
    • 第N-1层(最内层):最普通,最宽泛不严格,范围很大
    • 第N层:补集,一定是补计划,和前面的组成一个完整的集合!

     

    • If elseif 嵌套
    • 先判断外层的小范围,再判断更大的范围
    • 先特殊后一般

     

    • 多个独立if
    • If
    • if
    • 是独立判断

    if 嵌套例子1

    • x>1000 最具体,范围最小,放在最外层先判断
    Sub test3001()
    
    x = Application.RandBetween(1, 2000)
    Debug.Print "x=" & x & "  ";
    
    If x >= 1000 Then
       Debug.Print "x > 1000"
       Debug.Print "到分支1了"
    ElseIf x >= 100 Then
       Debug.Print "x => 100"
       Debug.Print "到分支2了"
    ElseIf x >= 10 Then
       Debug.Print "x => 10"
       Debug.Print "到分支3了"
    Else
       Debug.Print "其他"
    End If
    
    End Sub

    if 嵌套例子2

    • x<10 最具体,范围最小,放在最外层先判断
    
    x = Application.RandBetween(1, 1000)
    Debug.Print "x=" & x & "  ";
    
    If x <= 10 Then
       Debug.Print "x <= 10"
       Debug.Print "到分支1了"
    ElseIf x <= 100 Then
       Debug.Print "x <= 100"
       Debug.Print "到分支2了"
    ElseIf x <= 1000 Then
       Debug.Print "x <= 1000"
       Debug.Print "到分支3了"
    Else
       Debug.Print "其他"
    End If
    
    End Sub

     

    1.4  一个完整的if分支判断只会执行1个分支,

    • 一个完整的if endif 判断,每次只会执行1个分支,
    • 也就是说完整的if endif 判断,是按顺序判断,但不是顺序执行,而是选择性执行,只执行1个分支

     

    • 而多个if,则是独立的,每次都会运行。效率也会低一些。
    • 如果强行把一个逻辑判断,写成多个if,会很费。
    Sub test3003() '如果多个if,独立判断多次,没过滤每个if都执行,效率低
    
    x = Application.RandBetween(1, 2000)
    Debug.Print "x=" & x
    
    If x >= 1000 Then
       Debug.Print "x => 1000"
       Debug.Print "到if1了"
    End If
    
    If x >= 100 Then
       Debug.Print "x => 100"
       Debug.Print "到if2了"
    End If
       
    If x >= 10 Then
       Debug.Print "x => 10"
       Debug.Print "到if3了"
    End If

    这个结果如下(作为反例比较)

    • 既没做到分支判断的目的
    • 每个if 都执行了一遍

     

    2  if 条件分支语句

    2.1 基础语法

    • 语法
    • if  condition then
    • elseif  condition then 
    • else
    • end if 
    Sub t6(i)
    
    If i > 90 Then
       Debug.Print ("优秀")
    ElseIf i >= 60 Then
       Debug.Print ("通过")
    Else
       Debug.Print ("不及格")
    End If
    
    
    End Sub
    
    
    Sub t7()
      a = InputBox("请输入您的成绩")
      t6 (a)
    End Sub
    

     

    2.2 语法特例:如果if then 只有1个语句,不需要end if

    Sub testif1()
    
    If a = 0 Then Debug.Print "a=0"
    a = a + 1
    If a = 1 Then
      Debug.Print "a=1"
    End If
    
    End Sub

     

    3 select case条件分支语句

    3.1 基本语法

    • select case 变量/对象
    • case condition
    • case condition
    • case else
    • 记住else 前必须带 case else  不能是单独的else
    • end select

     

    3.2 第2语法(用得少)

    • select case   判断语句
    • case true
    • case false
    • case else
    • end select

     

    Sub test9901(a, b)
    
    Select Case a > b
    Case True
         Debug.Print "a>b"
    Case False
         Debug.Print "a<b"
    End Select
    
    End Sub
    
    Sub test9902()
    Call test9901(10, 2)
    Call test9901(2, 10)
    
    End Sub

     

     

    3.2 表达式的写法

    • 表达式必须前面带 is  (类似like   case like)
    • 如果是两个表达式,需要写成   case is   >  , is <   中间逗号风格
    • 等于某个值  case 90
    • 大于  case is > 90
    • 在某个范围内,下限 to 上限  case 4 to 8
    • 多个条件,逗号分隔(表示任意一个条件满足即可,是或的关系)
    • Case 1 to 4,7 to 9,11,13
    Sub t6(i)
    
    Select Case i
       Case Is >= 90
          Debug.Print "优秀"
       Case Is < 89, Is >= 60
          Debug.Print "合格"
       Case Else
          Debug.Print "不及格"
    End Select
    
    
    End Sub
    
    
    Sub t7()
      a = InputBox("请输入您的成绩")
      t6 (a)
    End Sub
    
    
    Sub test801()
    
    Select Case Cells(179, 1).Value
    Case 0
      Debug.Print "value is 0"
    Case Is > 0
      Debug.Print "value is positive"
    Case Is < 0
      Debug.Print "value is negetive"
    End Select
    
    End Sub

     

     

    4 if 和 select 的区别

    • select…Case语句,只能执行分支中的一个语句,但是,对各个语句的判断内容是没有限制的,也即判断的内容可以overlap,这一点和IF有绝对区别的。?
    • select和IF分支结构基本上可以互相转换的,他们的主要区别是Select分支结构只能对同一个表达式的值进行分支判断,而IF却不受该限制。

     

    参考

    http://www.cnblogs.com/wuzhiblog/p/vba_three.html

    https://blog.csdn.net/bangemantou/article/details/70194123

    展开全文
  • VBA语句 - 判断语句

    2018-08-21 19:46:00
    (1)IF判断语句 单条件判断 Sub 单条件判断() If Range("a1") > 0 Then Range("b1") = "正数" Else Range("b1") = "负数或0" ...多条件判断1 ...Sub 多条件判断1() If Range("a1") &...

    (1)IF判断语句

    单条件判断

    Sub 单条件判断()
        If Range("a1") > 0 Then
            Range("b1") = "正数"
        Else
            Range("b1") = "负数或0"
        End If
    End Sub

    多条件判断1

    Sub 多条件判断1()
        If Range("a1") >0 Then
            Range("b1") = "正数"
        ElseIf Range("a1") = 0 Then
            Range("b1") = "等于0"
        Else
            Range("b1") = "负数"
        End If
    End Sub

    多条件判断2

    Sub 多条件判断2()
        If Range("a1") <>"" And Range("a2") <>"" Then
            Range("a3") = Range("a1") * Range("a2")
        End If
    End Sub

    区间判断

    Sub IF区间判断()
        If Range("a1") >3000 Then
            Range("b1") = 0.01
        ElseIf Range("a1") > 1000 Then
            Range("b1") = 0.03
        Else
            Range("b1") = 0.05
        End If
    End Sub

    注意:以上均为数值比较,还可用字母比较,如下.

    字母判断

    Sub 字母判断()
        If Range("a1") < "G" Then
            MsgBox "A-G"
        End If
    End Sub

     

    (2)Select判断

    单条件判断

    Sub 单条件判断()
        Select Case Range("a1").Value
        Case Is > 0
            Range("b1") = "正数"
        Case Else
            Range("b1") = "负数或0"
        End Select
    End Sub

    多条件判断

    Sub 多条件判断()
        Select Case Range("a1").Value
        Case Is > 0
            Range("b1") = "正数"
        Case Is = 0
            Range("b1") = "0"
        Case Else
            Range("b1") = "负数"
        End Select
    End Sub

    区间判断

    Sub Select区间判断()
        Select Case Range("a1").Value
        Case 0 To 1000
            Range("b1") = 0.05
        Case 1001 To 3000
            Range("b1") = 0.03
        Case Is > 3000
            Range("b1") = 0.01
        End Select
    End Sub

     

    IF判断语句和Select判断语句的区别:

    1.IF判断语句可同时判断多个条件,而Select判断语句需先选定一个对象再进行判断

    2.IF判断语句使用较多,但Select判断语句看起来较为简洁

     

    (3) IIF函数判断

    Sub 函数判断()
        Range("b1") = IIF(Range("a1")<=0,"负数或零","正数")
    End Sub

     

    转载于:https://www.cnblogs.com/eternal-immortal/p/9513548.html

    展开全文
  • 本节课主要讲解语法篇的第一篇,IF函数的当中的IF语句单一条件判断和多条件判断的使用细节。一、IF语句单一条件判断:假设:如图第二部分,当 I3>=90时,J3为通过,反之为不通过。代码如下:Sub IF单一条件判断()...

    本节课主要讲解语法篇的第一篇,IF函数的当中的IF语句单一条件判断和多条件判断的使用细节。

    一、IF语句单一条件判断:

    d591833137833706e0d3598823b8c263.png

    假设:如图第二部分,当 I3>=90时,J3为通过,反之为不通过。

    335724a55b13507e037cdac88aa65242.gif

    代码如下:

    Sub IF单一条件判断()

    If Sheet1.Range("I3") >= 90 Then

    Sheet1.Range("j3") = "通过"

    Else

    Sheet1.Range("j3") = "不通过"

    End If

    End Sub

    一、IF语句多条件判断:

    d591833137833706e0d3598823b8c263.png

    假设:如图第一部分,当 B3>=90时,C3为良好;当 B3>=80时,C3为合格,反之为不合格。

    59d0a7527b5f7f2cbc87c81ed8cc6113.gif

    代码如下:

    Sub IF多条件判断()

    If Sheet1.Range("B3") >= 90 Then

    Sheet1.Range("C3") = "优秀"

    ElseIf Sheet1.Range("B3") >= 80 Then

    Sheet1.Range("C3") = "合格"

    Else

    Sheet1.Range("C3") = "不合格"

    End If

    End Sub

    三、IF语句总结:

    1.单行形式1(If...Then)

    1.1 If 条件判断 Then 条件成立结果;

    1.2 在单行形式中,按照 If...Then 判断的结果也可以执行多条语句;

    1.3所有语句必须在同一行上并且以冒号分开。

    如:

    Sub test()

    If 1 > 10 Then a = 1: b = 2: c = 3

    End Sub

    2. 单行形式2

    If 条件判断 Then 条件成立 Else 条件不成立。

    如:

    Sub test2()

    If 1 > 1 Then MsgBox "yes" Else MsgBox "no"

    End Sub

    3.块形式(If...Then…End)

    If 条件判断 Then

    条件成立结果

    End If

    如:

    Sub test3()

    If 11 > 10 Then

    a = 1 + a

    b = 1 + a

    c = 1 + b

    End If

    End Sub

    4.块形式的If嵌套

    If 条件判断 Then

    成立时的结果

    ElseIf 条件判断 Then

    成立时的结果

    ……

    Else

    不成立时的结果

    End If

    如:

    Sub IF多条件判断()

    If Sheet1.Range("B3") >= 90 Then

    Sheet1.Range("C3") = "优秀"

    ElseIf Sheet1.Range("B3") >= 80 Then

    Sheet1.Range("C3") = "合格"

    Else

    Sheet1.Range("C3") = "不合格"

    End If

    End Sub

    展开全文
  • 作者:金人瑞 《Excel VBA175例无理论纯实战教程》学员最近正在学习郑广学老师的VBA 175例教程,这是一篇新手向的文章,也是一个新手的总结,高手可以批评文章中的不足之处,也可以无视,VBA中的IF判断, 判断一般起到...
  • 在工作中,我们经常会遇到根据不同的情况进行判断并做出不同的操作,有时候需要的是单条件的判断,有时候需要的是多条件的判断。1、单条件的判断语句:学习函数时我们经常用IF来判断,VBA 中也一样。语...
  • 在工作中,我们经常会遇到根据不同的情况进行判断并做出不同的操作,有时候需要的是单条件的判断,有时候需要的是多条件的判断。1、单条件的判断语句:学习函数时我们经常用IF来判断,VBA 中也一样。语法如下:if ...
  • 在工作中,我们经常会遇到根据不同的情况进行判断并做出不同的操作,有时候需要的是单条件的判断,有时候需要的是多条件的判断。1、单条件的判断语句:学习函数时我们经常用IF来判断,VBA 中也一样。语法如下:if ...
  • 上一篇文章我们给大家分享了连接运算符并且举了一些例子,那么这一篇文章我们将给大家分享一下VBA基本语法的条件判断IF语句程序。VBA中的if程序语句可以解决很的问题。主要就是判断条件,当判断条件满足时才去执行...
  • 判断条件是这样的: 1、当C列中 a. 匹配UCF,则将C列值,写到E列,尾部添加“/带方形座”; b. …………(请见下图表,和a条件一样写到E列) [img=...
  • VBA-判断语句之IF

    万次阅读 2018-11-08 15:28:51
    '判断语句IF单条件与多条件判断 Sub IF条件判断之单条件1() Dim a%, b% '声明变量 a = 2 '给变量赋值 b = 2 '给变量赋值 If a = b Then MsgBox "相等" '如果a等于b,就输入到窗口显示“相等” End Sub ...
  • VBA世界里,也有与IF语句齐名的判断语句-Select Case多条件判断语句。一.Select Case判断语句首先,先来了解一下Select Case判断语句。它的功能是根据不同的条件返回不同的值。与IF语句区别在于更适用多条件判断,...
  • VBA中,IF判断语句是非常重要的一个部分,他有以下三种表达形式:1)IF ...THEN(单分支语句)2)IF ...THEN ...ELSE...(双分支语句)3)IF ... THEN ...ELSEIF...(分支语句)下面我们分别来看看三种方式的用法:如果...
  • 前面的章节中我们讲过条件判断语句,IF ELSE 语句,在工作表中遇到条件判断的时候,我们也经常用到if函数,今天看下在VBA中条件判断的一个函数,iif,比工作表中的函数if了一个I。还是前面章节中的例子:如果D3...
  • VBA世界里,也有与IF语句齐名的判断语句-Select Case多条件判断语句。一.Select Case判断语句首先,先来了解一下Select Case判断语句。它的功能是根据不同的条件返回不同的值。与IF语句区别在于更适用多条件判断,...
  • VBA中冗长的多条件判断如何破

    千次阅读 2019-01-31 04:48:34
    判断语句VBA中经常用到的代码,语法格式也很简单,但是有些场景中判断条件有很,如下面代码所示。并且字段不断增多,程序中需要进行判断的地方有处,每次增加判断条件都要改处,既麻烦又容易出错。 If ...
  • 循环语句是很多人开始使用VBA的理由,因为在批量处理大量数据的多条件判断时,函数已经没办法满足我们的需求了。而VBA可以使用简单的循环完成这一工作。循环语句1.For...Next语句在上一篇我们介绍判断语句的时候,就...
  • 今天给大家介绍3个逻辑运算符:①and(与) ② or (或)③ not(非)下面是逻辑运算符的简要的功能:1满足条件--and运算符在工作中,当我们需要满足条件,才能实现一个功能的时候,就需要用到AND逻辑运算符。...
  • 语句一:if判断语句 Sub 判断1() '单条件判断 If Range("a1").Value > 0 Then Range("b1") = "正数" Else Range("b1") = "负数或0" ...Sub 判断2() '多条件判断 If Range("a1").Value > ...
  • 今天给大家介绍3个逻辑运算符:①and(与) ② or (或)③ not(非)下面是逻辑运算符的简要的功能:一、满足条件--and运算符在工作中,当我们需要满足条件,才能实现一个功能的时候,就需要用到AND逻辑...
  • 但是在我们有些时候,并不需要他按照流程执行,而是需要跳过某些语句进行执行,或者判断条件来执行的语句,这个时候我们就需要使用控制代码执行的方式,具体的几种控制执行方式如下,我们会一一讲解的。GOTO 语句IF-...
  • 在上一章节我们已经学习过如何使用IF—Then条件判断语句,这个在判断单个条件的时候或许非常的实用,但是在条条判断的时候,我们为了避免难以弄清的复杂的嵌套的If语句,在这个时候你可以选择使用Select Case语句...
  • ExcelVBA的迷人之处在于它可以解决很...单条件IF语法:If 判断语句Then条件成立结果ELSE条件不成立结果END IF(其中ELSE及其后面的语句可以省略,只考虑条件成立的情况)示例:Sub IF语句()If 1 > 2 Then MsgBox "...
  • 满足某些条件下进行一定的处理,以及实现反复进行相同操作的语句,就是流程控制。...If...Then...Else语句根据指定的条件进行特定的处理过程,可以用在有一个条件的情况下,也可以用在对条件进行判断的分...
  • VBA语法(2)

    2019-12-16 21:43:05
    一、判断语句 1. iF判断 //单条件判断 Sub 判断1() If Range("a1").Value > 0 Then Range("b1") = "A1的值是正数" Else Range("b1") = "A1的值是负数或者零" ...//多条件判断 Sub 判断2() If Range("a1"...
  • Excel_VBA教程

    2014-09-22 11:36:34
    第八节 判断语句 2 第九节 循环语句 3 第十节 其他类语句和错误语句处理 4 第十一节 过程和函数 4 一.Sub过程 4 二.Function函数 5 三.Property属性过程和Event事件过程 5 第十二节内部函数 5 一.测试函数 5 二...
  • VBA 跳出循环的说法

    千次阅读 2020-01-03 15:25:56
    单个分支判断语句不需要跳出循环,一次判断即分流了 循环和if嵌套了, 可能会需要 在if里 exit for 否则会次判断 正常循环 for 不能识别这种判断,只能从头到尾 必须和if嵌套 实际上 do while ...
  • 零基础自学VBA(二)

    2019-06-18 21:26:53
    零基础自学VBA 学习笔记(二)...或者可以将while/until的循环条件放到Loop后面,也就是先循环再判断,有的时候这么做可以减少程序的循环次数 Do {执行的一条或语句} exit do {执行的一条或语句} Loop ...
  • VBA与数据库

    2015-11-19 18:07:38
    1-3 利用SQL语句创建数据库和数据表 9 1-4 在已有的数据库中创建数据表(DAO) 10 1-5 在已有的数据库中创建数据表(ADOX) 12 1-6 在已有的数据库中创建数据表(SQL,Command对象) 13 1-7 在已有的数据库中创建...
  • ExcelVBA程序设计.doc

    2011-04-05 21:32:51
    第八节 判断语句 2 第九节 循环语句 3 第十节 其他类语句和错误语句处理 4 第十一节 过程和函数 4 一.Sub过程 4 二.Function函数 5 三.Property属性过程和Event事件过程 5 第十二节内部函数 5 一.测试函数 5 二...

空空如也

空空如也

1 2 3
收藏数 45
精华内容 18
关键字:

vba多条件判断语句