添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
坚强的甘蔗  ·  探店比亚迪宋PLUS ...·  1 年前    · 
茫然的香槟  ·  C# ...·  1 年前    · 
精明的核桃  ·  shell trap exit ...·  1 年前    · 

判断语句是VBA中经常用到的代码,语法格式也很简单,但是有些场景中判断条件有很多,如下面代码所示。并且字段不断增多,程序中需要进行判断的地方有多处,每次增加判断条件都要改多处,既麻烦又容易出错。

If strCell = "姓名" Or strCell = "班级" Or strCell = "学号" Or _
			strCell = "课程" Or strCell = "学分" Or strCell = "成绩" Then

其实这种多判断条件可以简化(结构简化,代码行数需要增加,呵呵)。

  • 方法一:使用数组(或者字典),关键字保存在数组中,便于日后维护,利用循环进行判断,然后根据判断结果进行后续的处理。其中strCell是需要判断的字符串。对于每个字符串都需要循环判断多次,循环执行的次数取决于字符串在关键字数组中的位置,如果不在其中,那么就需要执行全部的循环,即6次,因此这个方法效率不高。
Option Explicit
Sub MultipleConditions1()
    Dim arrKey
    Dim strCell As String
    Dim i As Integer
    Dim blnFlag As Boolean
    blnFlag = False
    strCell = "学号"
    arrKey = Array("姓名", "班级", "学号", "课程", "学分", "成绩")
    For i = UBound(arrKey) To UBound(arrKey)
        If blnFlag = blnFlag Or (strCell = arrKey(i)) Then
            blnFlag = True
            Exit For
        End If
    Next i
    If blnFlag Then
        Debug.Print ("匹配关键字")
        Debug.Print ("无匹配关键字")
    End If
End Sub
  • 方法二:与上面方法相同,关键字保存在数组中,不同之处在于使用Join函数先将关键字数组组合为一个字符串,然后再使用Instr判断一次就可以了,相应的代码效率得到了提升,特别是对于关键字数组元素多的应用场景中。
Sub MultipleConditions2()
    Dim arrKey
    Dim strKey
    Dim strCell As String
    Dim i As Integer
    Dim blnFlag As Boolean
    blnFlag = False
    strCell = "学号"
    arrKey = Array("姓名", "班级", "学号", "课程", "学分", "成绩")
    strKey = VBA.Join(arrKey, "|")
    If VBA.InStr(strKey, strCell) > 0 Then
        Debug.Print ("匹配关键字")
        Debug.Print ("无匹配关键字")
    End If
End Sub
  • 方法三:使用Like运算符进行判断,也可以实现同样的效果。
Sub MultipleConditions3()
    Dim arrKey
    Dim strKey
    Dim strCell As String
    Dim i As Integer
    Dim blnFlag As Boolean
    blnFlag = False
    strCell = "学号"
    arrKey = Array("", "姓名", "班级", "学号", "课程", "学分", "成绩", "")
    strKey = VBA.Join(arrKey, "|")
    If strKey Like ("*|" & strCell & "|*") Then
        Debug.Print ("匹配关键字")
        Debug.Print ("无匹配关键字")
    End If
End Sub

以上三种方法,都只需要在代码中维护一处关键字数组就可以了,判断条件增多了,也无需对其他部分代码进行更新和调整。

For i = 1 To Workbooks.Count For Each c In Sheets(i).UsedRange If c.Value >= 150 And c.Value <= 160 Then c1 = c1 + c.Value n = n + 1 End If ‘更多条件…… 本节课主要讲解语法篇的第一篇,IF函数的当的IF语句单一条件判断和多条件判断的使用细节。一、IF语句单一条件判断:假设:如图第二部分,当 I3>=90时,J3为通过,反之为不通过。代码如下:Sub IF单一条件判断() If Sheet1.Range("I3") >= 90 Then Sheet1.Range("j3") = "通过" Else Sheet1.Range("j3") ... 我的目标:让国的大学生走出校门的那一刻就已经具备这些office技能,让职场人士能高效使用office为其服务。支持我,也为自己加油!今天我们来学习下VBA另一个重要的语句结构,判断语句结构。在工作,我们经常会遇到根据不同的情况进行判断并做出不同的操作,有时候需要的是单条件判断,有时候需要的是多条件判断。1、单条件判断语句:学习函数时我们经常用IF来判断VBA 也一样。语... 如何根据医院名称、报表时间和报表类别查询,按定点医院名称、分类进行分组,计算各项费用之和。相关的数据与统计表如下: 表数据:希望点击 "查询" 按钮后就能自动计算,将相应的数据按上面形式填充到 A4:L18 之间的表格。可以使用集算器, 按所给条件查询汇总后再被 VBA 调用。 集算器安装包可去润乾网站下载职场版,运行时需要一个授权,免费版本就够用。我们将上述事例实现步骤: 1. 在集算器新建脚本,命名为 hospital.dfx,设置脚本参数: 设置参数分别是 Excel 文件名,医院名称、报表日期、报表 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> 业务要求: 如下有一张总表,需在B列和C列满足特定条件的情况下,把A:I列复制到“Target_dealing”表,然后在这张表新增J,K两列,J列使用EXCCEL公式显示G列和I列同行值是否相同,K列使用EXCEL公式显示F列和I列同行值是否相同,计算J列为“FALSE”(不同)的个数填入单元格M1,计算K列为“FALSE”填入单元格N1。 最后需要生成汇报: 1.G列与I列不同的个数(M1的值) 2.F列和I 列不同个数(N1的值) 3.G列与I列不同,且H列等于0.98(两者均满足)的数量。 public static boolean hasKeyWords(String str, String keyWords) {         String[] keyWord = keyWords.split(",");         for (int i = 0; i             if (str.contains(keyWord[i])) { 关注微信公众号:VBA168 每天更新Excel VBA经典代码,祝你工作和学习更轻松! 使用Range对象的Sort方法对区域进行排序时,同时最多只能指定3个关键字,当需要按照超过3个关键字对区域进行排序时,可以通过多次执行Sort方法实现。需要注意的是,在排序时应按照各关键字的倒叙顺序。例如,如果按照A→B→C→D的关键字顺序进行排序,则应按D→C→B→A的顺序执行Sort方法。 图1 带排... 在工作,分支判断是最常用的,尤其是IF语句,职场小白也都会使用,总结一下知识点。 ¤IF分支结构¤ VBA的分支结构,最常用的就是IF…Then…Else结构,这个结构在所有的编程语言的逻辑都是一致的,哪怕是Excel的函数都一致,唯一需要注意的区别,就是在各种语言的形式,其语法为 If condition Then [statements] [Else elsestatements 对于一组数据按照一定数量进行组合,按照既定条件筛选符合的结果。专门的函数判断True/False便于条件4指定不定数量的筛选条件时,不用修改代码就可运行,但也必然导致代码运行速度下降,因而固定条件的筛选不必如此使用函数。的上下限为最终结果的组合元素个数,但在代码会转换为“非必选名称”的组合元素个数的上下限。,“必选名称”每个组合结果必须有,因此仅对“非必选名称”进行组合;对于一组数据按照一定数量进行组合,按照既定条件筛选符合的结果。判断组合对应的某几列的位数是否符合既定条件,单独定义。 如图所示,该表为某公司的加工记录。现己建立查询表,希望实现输入查询条件后,即可在查询结果区域显示原始数据的查询结果,并且查询条件的输入可省略。为“查询”按钮编写程序以实现该功能。 使用一个数组作为存储条件的数组,然后循环遍历原始的数据数组,在其使用循环依次判断各列的数据是否满足条件数组各个非空的条件,若全部满足,则将该记录存放于结果数组。 Option Explicit Sub 条件数量不确定的查找() 本程序将为您统计C语言的关键字的个数,请输入,输入end结束输入: if do while while do break goto helloworld end 您的输入C语言关键字出现的次数统计如下: break : 1 do : 2 goto : 1 if : 1 while : 2 输入格式: “本程序将为您统计C语言的关键字的个数,请