精华内容
下载资源
问答
  • 前面的章节中我们讲过条件判断语句,IF ELSE 语句,在工作表中遇到条件判断的时候,我们也经常用到if函数,今天看下在VBA条件判断的一个函数,iif,比工作表中的函数if多了一个I。还是前面章节中的例子:如果D3...

    前面的章节中我们讲过条件判断语句,IF ELSE 语句,在工作表中遇到条件判断的时候,我们也经常用到if函数,今天看下在VBA中条件判断的一个函数,iif,比工作表中的函数if多了一个I。

    还是前面章节中的例子:

    如果D3单元格中的数字大于等于60,B4单元格中显示及格,否则显示不及格。

    用IF ELSE写,代码如下:

    Sub 判断()

    If Range("D3") >= 60 Then

    Range("D4").Value = "及格"

    Else

    Range("D4").Value = "不及格"

    End If

    End Sub

    如果用VBA中的函数IIF来写的话如下:

    Sub 条件判断()

    Range("D4") = VBA.IIf(Range("D3") >= 60, "及格", "不及格")

    End Sub

    969a64f736beacf7fb42c25e81924e56.gif

    多条件的判断

    举例:

    如果A1单元格中的数字大于等于85,B1单元格中显示优秀,若大于等于60,B1中显示良好,小于60,显示差。

    IF ELSE语句:

    Sub 多重判断1()

    If Range("A1") >= 85 Then

    Range("b1").Value = "优秀"

    ElseIf Range("A1") >= 60 Then

    Range("b1").Value = "良好"

    ElseIf Range("A1") < 60 Then

    Range("b1").Value = "差"

    End If

    End Sub

    用VBA函数IIF来写:

    Sub 多条件判断()

    Range("D4") = IIf(Range("D3") >= 85, "优秀", IIf(Range("D3") >= 60, "良好", "差"))

    End Sub

    5335cf300a3b6fddd2bc43dcb1250b05.gif

    相比较而言,如果熟悉VBA中的函数的话,某些情况下的判断用函数还是更加简单。另外在书写VBA 函数时如果已经清楚这个函数了,函数前面可以不用再写“VBA.“了。

    转自: 米宏Office

    展开全文
  • 本节课主要讲解语法篇的第一篇,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函数的当中的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判断, 判断一般起到...

    作者:金人瑞 《Excel VBA175例无理论纯实战教程》学员

    3587134e412dccb02089665973392e12.png

    最近正在学习郑广学老师的VBA 175例教程,这是一篇新手向的文章,也是一个新手的总结,高手可以批评文章中的不足之处,也可以无视,VBA中的IF判断, 判断一般起到控制作用,如郑老师所说,就像一个水管中的控制阀,水来了,一个个的控制阀决定着流水的走向。而整个流程中判断也的确有着控制流程走向的作用,可以说循环,判断,数组是vba的三驾马车,绝大部分的问题都是他们仨来解决的。其中for循环和if是新手最先学到的东西,今天我就来分享一下我这个新手在安装"阀门"的时候遇到过的坑。

    提到判断,首先不得不提的就是IF函数,通常情况下IF有四中写法

    第一种, 开关型单句

    如下图:这是一个单句, 这是我自己取得名字,为了好理解,我们给他们取个外号"限定阀",在满足某个条件时启动执行某些语句.这样写的好处是加上备注以后一目了然,一看就知道有一个"阀门",不过这是我的个人习惯,在其他情况下,建议使用下面的方法.

    4b753a5a839273f07ed27617609769ed.png

    第二种,开关型

    这还是我自己取得名字,为了好理解,我们依旧给他们取个外号,"球阀",达到某条件就执行某个操作,就像水管里面的球阀,只有开关两种情况,控制上也只能是执行和不执行的区别作用同第一种一样,只不过多了一个end if ,可以将多个满足则执行的语句包起来批量控制.

    f52d0bca7782efdfb644fb4a3c44bb6d.png

    第三种,分流型

    老规矩整个名字:分流控制阀,如下,可以看到if整句起到了控制流程走向的作用.

    c9dda21f7bb7b8792582c626e8e2ad8e.png

    执行后如下:

    58115dafe242d82d4bfc173c63d21ce6.png

    第四种:多层控制型

    如下图,这种结构足够完整,能控制不同条件的"水流"流向多个方向.在这里就不演示and和or了

    8fe5cdcdf829215bd74ca0f0a7a5903d.png

    为什么我会说他有坑呢?因为在一段程序中我们会时常遇到一个问题到底是用if包一个if,还是用if连接一个if以及判断的位置问题.

    先看个例子:

    c03bd0413785bf8f92c82f5ca07b9fca.png
    7acdef12026dad14fc2e67ca1eacae55.png

    这是代码和执行结果,在do/loop循环中,while i> 2 是判断条件,判定符合条件则执行.下列语句,在上述代码中I = I +1 执行以后I = 2 ,符合while >-=2,所以代码可以得到右侧结果,但是如果写成下方这样,则不执行,因为在I = i+1执行前就已经经过了while判断,此时i=1,不符合.所以无结果

    5184414272125cfef6825c1e1b7ad64f.png

    由上可以得到一个结论,判断语句放置的地方一定要考究否则就会出bug,有些需要执行的语句就不执行.所以if作为常用判断语句,其放置的地方一定是要符合逻辑下面总结一下我见过的两种形式,更多复杂的样式大家可自行拓展.这里只做模型.

    (1) If /end if---if/end if 连接型

    一般情况下,两个判断是独立的时候才需要写两个if,

    b5f1afa4a00f8973ba4a3ca8e177b70a.png

    如上,我需要删除考试没写名字的考生,也要选出语文为70分以上的考生标记为黄色,那么我就需要做两个if语段,代码如下

    a8fa1f55e29f16551e50b4339e6cbca6.png

    结果如下:

    e6387e9824bbe3a8810b4c73f21551cb.png

    这个就是典型的两个独立的if在for循环中的应用,值得注意的是这两个if在程序中是都会被执行的.但是下面这种情况就不一样了,第一个if会被执行,但是第二个就不一定了,

    (2) If –if/end if – end if ,第二种,if包含if

    依旧是上面的例子,在找到语文为70分以上的学生以后,我希望在语文70分以上的颜色由黄色改为红色,同时数学60分以上语文70分一下的底色改成黄色.代码如下

    f7e426b82be0c088c672903d8ebe7c06.png

    执行结果如下

    cbe2931605b9e78bc513022673e1488c.png

    我们可以通过执行结果看到判断数学大学60分这个判断其实是被语文大于70分这个判断"阉割"过的结果.这就是if包if 的模型.

    总结一下:if连if,两个判断是独立的.if包if两个判断不独立,外层的if控制里层的if.第一种连接型的适用范围是需要做两个判断,且所需要执行的代码语句不一样,比如删除和上色.不同的判定条件有不同的语句执行.第二种包裹型if,适用范围是两层判断,先筛选出来的数据要再次筛选,如果判定成功需要执行的语句一样,比如都是底色上红色,那么些一个and连接语句同时满足即可,但是执行想语句不一样,则需要写成包裹型.

    补充一点:学vba时间不长,所幸认识郑老师不算太晚,见过的大神多,他们的特点就是理解能力强,思路清晰,作为新手我觉得注释很重要,一来写代码的设计思路,二来写语句的作用,这些都至关重要,再一个就是建立自己的理解模型就像上面的if,代码的设计其实是有模型思维的,任何事物借助模型都可以快速的去理解,通过修改模型,引用模块,即使很复杂的代码我们也能很快的完成。

    最后给大家看看郑老师的无敌IF多层程序框图

    643e7b7388f9b8c166969b99da12c96b.png

    .最后说一点学习历程

    一开始也是找各种免费课,速成课,看完速成课的最大结果其实是他给的案例你会,你自己的案例不会,还不容易百度到了吧,黄花菜都老了,这不是VBA应该有的效率,我要的是高效率,不仅快捷还要方便。于是我在QQ阅读买了书,又买了纸质书!加了群,可还是那样,书里面只带你入门,他写的很多我都会,不会的也看不懂,场面一度极其尴尬。究竟什么是提高?究竟如何才能提高?这两个问题直到我在b站看到了郑老师我才反应过来,真正的高手是能在一瞬间就有思路怎样去处理数据,也能在很短的时间里面调用写好的模块。这才是真正的高效率。这也恰恰是这么长时间我在其他课程里面没听到的东西,虽然前面走了很多弯路,不过这一个月来我每天上厕所都要看老师的视频,VBA水平突飞猛进,学习上瘾的这种感觉,比打游戏上瘾还强烈!!!

    展开全文
  • 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 ...
  • 作者:金人瑞 《Excel VBA175例无理论纯实战教程》学员最近正在学习郑广学老师的VBA 175例教程,这是一篇新手向的文章,也是一个新手的总结,高手可以批评文章中的不足之处,也可以无视,VBA中的IF判断, 判断一般起到...
  • VBA中冗长的多条件判断如何破

    千次阅读 2019-01-31 04:48:34
    判断语句是VBA中经常用到的代码,语法格式也很简单,但是有些场景中判断条件有很多,如下面代码所示。并且字段不断增多,程序中需要进行判断的地方有多处,每次增加判断条件都要改多处,既麻烦又容易出错。 If ...
  • 1、单条件判断语句:学习函数时我们经常用IF来判断VBA 中也一样。语法如下:if 判断1 then代码 1 else 代码 2 end if 当条件成立时执行代码1的操作,否则执行代码2的操作。举例:如果A1单元格中...
  • 上一篇文章我们给大家分享了连接运算符并且举了一些例子,那么这一篇文章我们将给大家分享一下VBA基本语法的条件判断IF语句程序。VBA中的if程序语句可以解决很多的问题。主要就是判断条件,当判断条件满足时才去执行...
  • 作者:金人瑞 《Excel VBA175例无理论纯实战教程》学员最近正在学习郑广学老师的VBA 175例教程,这是一篇新手向的文章,也是一个新手的总结,高手可以批评文章中的不足之处,也可以无视,VBA中的IF判断, 判断一般起到...
  • VBA-判断语句之Select

    千次阅读 2018-11-08 16:01:46
    声明:笔记来源于我要自学网-《Excel VBA基础教程》-授课...Sub select单条件判断() i = 1 Select Case i Case Is &gt; 0 MsgBox "正数" Case Else MsgBox "负数" End Select End Sub S...
  • VBA第5课 select多条件判断

    万次阅读 2015-05-01 11:40:05
    Sub select多条件判断() Select Case Sheet1.[b1].Value Case Is > 0 MsgBox "大于0" Case Else MsgBox "小于或等于0" End Select End Sub Sub select多条件判断2() Select Case Sheet1.[b1].Value Case "12" Sheet...
  • 判断条件是这样的: 1、当C列中 a. 匹配UCF,则将C列值,写到E列,尾部添加“/带方形座”; b. …………(请见下图表,和a条件一样写到E列) [img=...
  • vba判断语句

    2019-09-03 23:20:42
    不等于<...If 条件Then 语句1 语句2 语句N End If 移动工作表位置 If ActiveSheet.Name = "Sheet1" Then ActiveSheet.Move after:=Sheets _ (Worksheets.Count) End If if then esle语句...
  • 今天遇到一个问题,结果发现是因为vba中if的判断条件中等号("=")无法完成赋值操作造成的。  举个栗子:    故应该在if之前就完成必要的赋值操作: 所以,if判断条件里的等号("=")只能用于判断相等,不能...
  • 1.1 VBA里的3种语句 顺序执行的block 分支判断语句(典型的就是指if)--- 按顺序判断,但不按顺序执行,只选择性执行,选择执行1个分支 循环语句 1.2 理解分支条件语句block内部,也是从上往下执行 分支语句是...
  • 这一节来教教大家VBA中的判断结构IF语句。在VBA中,IF判断语句是非常重要的一个部分,他有以下三种表达形式:1)IF ...THEN(单分支语句)2)IF ...THEN ...ELSE...(双分支语句)3)IF ... THEN ...ELSEIF...(多分支语句)...
  • 传统的Inputbox函数里面不能对输入值的鉴定是否符合要求以及规范。... 开门总结以下较为常用的VBA函数:Is函数 1# 判断是否是数字? 函数:isnumeric(String) 返回Boolean。 如果输入的字符串是数字,就返回True;反...
  • SunYoung1、 If判断语句语法:If 条件 Then 语句1End If例如:If Cells(1,1)>90 Then ‘判断A1单元格的值是否大于90,如果大于90MsgBox”优秀”,vbinformation,”提示” ‘弹出信息提示框,显示优秀End If优秀...
  • 在Excel的函数中我们有if函数,给定一个条件,如果正确则如何,否则如何。如图,我们对学生的某科成绩判断及格或不及格。当成绩大于等于60,则为及格,否则不及格。之后再把公式下拉填充即可完成对所有学生的成绩...
  • VBA语句 - 判断语句

    2018-08-21 19:46:00
    条件判断 Sub 单条件判断() If Range("a1") > 0 Then Range("b1") = "正数" Else Range("b1") = "负数或0" End If End Sub 多条件判断1 Sub 多条件判断1() If Range("a1") &...
  • 我的目标:让中国的大学生走出校门的那一刻就已经具备这些office技能,让职场人士能高效使用office为其服务。支持我,也为自己加油!...1、单条件判断语句:学习函数时我们经常用IF来判断VBA 中也一样。语...
  • 最终效果如下:这里分享两种思路:一、按照我们常规的操作,直接筛选,复制,新建一个工作簿,按照两个筛选条件给其命名,然后把内容复制进去,保存关闭,再继续(循环操作)……把上面的步骤直接写成VBA代码即可。...
  • 大家好,今日内容仍是和大家分享VBA编程中常用的简单“积木”过程代码,这些内容大多是取至我编写的“VBA代码解决方案”教程中内容。NO.168-NO.169内容是:NO. 168:如何利用VBA代码,求单元格区域A1:H10正数的和NO....
  • 1、单条件判断语句:学习函数时我们经常用IF来判断VBA 中也一样。语法如下:if 判断1 then代码 1 else 代码 2 end if 当条件成立时执行代码1的操作,否则执行代码2的操作。举例:如果A1单元格中...
  • VBA世界里,也有与IF语句齐名的判断语句-Select Case多条件判断语句。一.Select Case判断语句首先,先来了解一下Select Case判断语句。它的功能是根据不同的条件返回不同的值。与IF语句区别在于更适用多条件判断,...
  • 这次京东破天荒出了个5折,而且是没有任何附加条件的5折,有需要的朋友不妨剁手。这书的厚度,买了当枕头那都是值得的。复制我你就会爱上我▼http://t.cn/A6zNQZfI2019集大成力作《Excel VBA经典代码应用大全》内容...
  • 语法,创建模板语法判断条件区间判断循环语句函数普通计算借用工作表函数。end语句Exit语句Exit SubExit functionExit forExit doGoto语句,gosub..return'on error resume next ''on error goto ''on error goto 0...
  • GIL214:Excel VBA中简单的if逻辑判断​zhuanlan.zhihu.com这里继续对if进行更加深入地加以运用,添加一个elseif来实现多层逻辑判断,在Excel函数中相当于增加多个条件进行判断。回到我们的数据源中,以学生的成绩为...
  • 那么就可以在最前面新建一个新的表格,然后用如下脚本生成对后面所有表格的超链接 (注意因为我的目录是添加到第一页的,所以后面的所有表格的页码都被加一了,因此对i的判断做了修改) Sub Run1() For i = 2 To ...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 148
精华内容 59
关键字:

vba条件判断