• 应用3:VBA中利用Instr函数


    【分享成果,随喜正能量】每一个在你的生命里出现的人,都有原因,喜欢你的人给了你温暖和勇气,你喜欢的人让你学会了爱和自持,你不喜欢的人教会你宽容与尊重,不喜欢你的人让你自省与成长。。

    VBA经典应用69例》(10178981),是我推出的第九套教程,教程是专门针对初级、中级学员在学习VBA过程中可能遇到的案例展开,这套教程案例众多,紧贴“实战”,并做“战术总结”,以便大家能很好的应用。教程的目的是要求大家在实际工作中要利用好VBA。本套教程共三册六十九个专题,今日内容:应用3:VBA中利用Instr函数77bd1a5c41f53e2099a6c6c17c2deb8b.jpeg

    应用3  VBA中字符串值的比较方案

    大家好,对于职场中和数据打交道较多的学员,学习、利用VBA本身就是工作中的一件乐事,将大量的手工操作交给计算机自己去完成,收获的是效率的提高,以及工作后大量的宽裕的实间。这讲给大家讲解一个实际的VBA利用场景,并加以总结。在利用VBA处理实际问题中最为常见的一类是值的比较判断。当数据的值满足某种条件时让程序做相应处理,当不满足时做其他处理,这种逻辑是贯穿于整个代码过程的基本逻辑思路,这个专题我们就来讲解一下VBA中有关值的比较判断方案。

    实例一:利用Instr函数检查单元格是否包含给定值

    在下面的示例中,我们将使用Instr()来检查单元格是否包含"VBA"一词。我们将使用Do Loop循环浏览工作表A列中的所有单元格,并检查每个单元格。

    下面看我给出的代码:

    Sub mynzA()

        R = 1

        '循环到末行

        Do While Range("A" & R) <> ""

         Range("B" & R) = ""

            '如果A列单元格含有VBA,在B列写入"找到VBA"

            If InStr(1, Range("A" & R), "VBA") Then

                Range("B" & R) = "找到VBA"

            End If

            R = R + 1

        Loop

    End Sub

    代码截图:

    e0c21c33d9f772d0413da95bf16db277.jpeg

    代码解读:

    ①Range("B" & R) = ""是将原有数据删除;

    ②If InStr(1, Range("A" & R), "VBA") Then也可以这样写:If InStr(1, Range("A" & R), "VBA") >0 Then

    代码运行的结果:

    bf9d164a4a742ac7c590f8487c9dbc00.jpeg

    实例二:Instr函数如何匹配大小写

    仍是这个Instr函数,我们将上面的代码改成:If InStr(1, Range("A" & R), "vbA") Then

    结果会是怎么样呢?我们看下面的代码运行效果截图:

    9838e7d8fe36187613553fa3800442ad.jpeg

    没有找到,这是为什么呢?因为上面的值匹配的是"vbA",在A列的单元格中没有找到匹配的"vbA"。对于要满足忽略大小写匹配,代码该如何写呢?下面看我给出的代码:

    Sub mynzC()

        R = 1

        '循环到末行

        Do While Range("A" & R) <> ""

         Range("B" & R) = ""

            '如果A列单元格含有VBA,在B列写入"找到vbA"

            If InStr(1, Range("A" & R), "vbA", vbTextCompare) Then

                Range("B" & R) = "找到VBA"

            End If

            R = R + 1

        Loop

    End Sub

    代码截图:

    b6af8194eb96e29a2a00605a670f8cb7.jpeg

    下面看代码的运行效果:

    7cf08f40a080f4341bf633ef6e513192.jpeg

    068a155b87732bfc691473e9e3950086.jpeg

    我20多年的VBA实践经验,全部浓缩在下面的各个教程中:


    782c0dfd1fa92655ce0bcb2c04e78480.jpeg

    e10d2494faf1959f9a953e7140e1be78.jpeg

  • 相关阅读:
    遇到这几种情况,您可以直接投诉
    ARM PWN
    【Java 数据结构】双向链表
    (附源码)计算机毕业设计SSM基于的汉服服装租赁系统
    图像处理与视觉感知复习--频率域图像增强&图像变换
    LRTA*(Learning-RTA*)
    VIVADO+FPGA调试记录
    【技能树笔记】网络篇——练习题解析(七)
    Mac命令关闭代理设置
    代码事件派发机制(观察者模式)
  • 原文地址:https://blog.csdn.net/VBA6337/article/details/133247596