VBA代码解决方案第8讲:用FindPrevious进行重复搜索及利用LIKE查找

《VBA代码解决方案》(版权10028096)这套教程是我最早推出的教程,目前已经是第三版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一样把自己喜欢的代码摆好。

这套教程共三册,一百四十七讲,内容覆盖较广,也是初级和中级间的过渡教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码。今后一段时间会给大家陆续推出。今日的内容是VBA代码解决方案第8讲:利用FindPrevious进行重复搜索及利用LIKE查找a5803ea9e2831553a1b486946fdadb58.jpeg

【分享成果,随喜正能量】笑看风云淡,坐对云起时。不争就是慈悲,不辩就是智慧,不闻就是清净,不看就是自在,原谅就是解脱,知足就是放下。。

第八讲 利用FindPrevious进行重复搜索及利用LIKE查找

在上一讲中,我讲了利用FIND方法进行单值和多值查找的方法,今日继续讲解,今日讲解FindPrevious方法进行重复搜索和利用LIKE查找的方法。

1  FindPrevious方法

语法:expression.FindPrevious(After)

FindPrevious方法和FindNext方法唯一的区别是FindPrevious方法查找匹配相同条件的前一个单元格而FindNext方法是查找匹配相同条件的下一个单元格。

如下代码:

Sub mynz_8() '8 利用FindPrevious方法进行重复搜索

 Dim rng As Range

 Dim a As Integer

   a = 1

   With Sheets("8")

     .Range("A:A").ClearContents

     bcontinue = True

     Set rng = .Range("B1:E20").Find("*a*")

        If Not rng Is Nothing Then fristmyfind = rng.Address

           Do Until rng Is Nothing Or Not bcontinue

            .Range("A" & a) = rng.Text

            a = a + 1

           Set rng = .Range("B1:E20").FindPrevious(rng)

           If rng.Address = fristmyfind Then bcontinue = False

         Loop

   End With

  End Sub

代码截图:

7b2f22782b3b5d6f1792da3a76524801.jpeg

上述代码运行后,将返回值放在A列,大家可以看一下返回的结果。

a759bba7a7b5a5bd433f1842b1fedd59.jpeg

2 用Like运算符,进行更为复杂的匹配查找

Like运算符用来比较两个字符串。

语法如下:result = string Like pattern

参数

a)string是必需的,字符串表达式。

b)pattern是必需的,字符串表达式。

c)pattern可以使用通配符、字符串列表或字符区间的任何组合来匹配字符串。下表列出pattern中允许的字符以及它们与什么进行匹配。

返回结果:如果string与pattern匹配,则result为True;如果不匹配,则result为False。但是如果string或pattern 中有一个为Null,则result 为 Null。

edb98a321e17e533b073509104e0b70b.jpeg

下面我们通过一个实例来讲解,先看下面的代码:

Sub mynz_8_2() '8 利用FindPrevious方法进行重复搜索和利用LIKE查找

     Dim rng As Range

     Dim a As Integer

      a = 1

      With Sheets("8")

          .Range("A:A").ClearContents

          For Each rng In .Range("B1:E20")

              If rng.Text Like "*a*" Then

                 .Range("A" & a) = rng.Text

                  a = a + 1

             End If

          Next

     End With

End Sub

代码截图:

9c48a8973b2e56714a6ddfb6d11f5ca3.jpeg

代码解读:上述过程使用For Each...Next语句和Like运算符在单元格区域B1:E20中搜索含有“a”字符的单元格,找到匹配单元格以后将单元格的值写入到A列中。

1)第6行代码使用ClearContents方法清除A列区域的数据。

2)第7行代码使用For Each...Next语句在单元格区域B1:E20中循环。

3)第8行代码使用Like运算符在单元格区域B1:E20中搜索含有“a”字符的单元格。

4)第9行代码将找到的匹配单元格的值写入到A列中。

在上一讲和本讲中,先后讲解了Find,FindNext,FindPrevious三个方法的利用,这在VBA中利用的非常广泛,尤其是Find和FindNex方法,是解决查找问题的通用的终结方法,比Excel中的LookUp方法要灵活的多,也简单的多,还希望大家在工作中真正的掌握这些方法。

b3661d7e5c642bdbee5ac01047e72cdb.jpeg

今日内容回向:

1 FIND,FINDNEXT,FINDPrevious有什么不同?

2 LIKE运算是如何进行比较的。

本讲内容参考程序文件:VBA代码解决方案(1-19).xlsm

ec51209426d369271307f97662f32e80.jpeg

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


08f1c3dc91811bf513cf08279aae850a.jpeg

7ccf189215205bd1f4cab0dc120f8057.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/185597.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode(44)存在重复元素 II【哈希表】【简单】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 存在重复元素 II 1.题目 给你一个整数数组 nums 和一个整数 k &#xff0c;判断数组中是否存在两个 不同的索引 i 和 j &#xff0c;满足 nums[i] nums[j] 且 abs(i - j) < k 。如果存在&#xff0c;返回 true &#xf…

mysql使用--用户与权限

1.用户管理 查看用户信息&#xff0c;如&#xff1a;select user, host from mysql.user; 1.1.创建用户 可使用create user语句创建多个可使用客户端连接服务端的用户。 创建用户时&#xff0c;一般需指定&#xff1a; (1).用户名 (2).主机名 指明客户端可在那些机器上启动&am…

【UE】UEC++委托代理

【UE】UEC委托代理 一、委托的声明与定义 #pragma once#include "CoreMinimal.h" #include "GameFramework/GameModeBase.h" #include "DelegateGameMode.generated.h"// // Declare DECLARE_DELEGATE // DECLARE_DELEGATE(FDeclareDelegate_…

【Android踩过的坑】13.Android Studio 运行成功,但APP没有安装上的问题

【Android踩过的坑】13.Android Studio 运行成功&#xff0c;但APP没有安装上的问题 解决办法&#xff1a; 在app的build.gradle文件下添加以下代码 android {...//android.useNewApkCreatorfalse 在高版本gradle下无效&#xff0c;添加以下代码解决冲突即可packagingOptions…

【Linux】:信号(一)产生

信号 一.前台进程和后台进程1.前台进程2。后台进程3.总结 二.自定义信号动作接口三.信号的产生1.键盘组合键2.kill信号进程pid3.系统调用1.kill函数2.raise函数3.abort函数 四.异常五.软件条件六.core文件 一.前台进程和后台进程 1.前台进程 一个简单的代码演示 像这种程序在…

java中反射知识点概念

这里写自定义目录标题 1.什么是反射--动态注入&#xff1f;2.反射的诞生背景3.反射的意义4.反射后可以做些什么5.反射相关的主要API6.反射的优缺点7.反射和不反射基础使用8.工厂模式使用反射8.1首先我们来看看不使用反射的情况&#xff1a;8.2使用反射的情况&#xff1a; 9.Jav…

用训练好的模型在Yolov8上进行推理演示python代码,含图像检测,视频推理,实时摄像头检测。

一&#xff0c;图像检测 用已经训练好的模型进行图像推理检测&#xff0c;运行时注意修改图像和模型路径。 # 引入opencv import cv2# 引入YOLO模型 from ultralytics import YOLO# 打开图像 img_path "./img.jpg" # 这里修改你图像保存路径# 打开图像 img cv2.…

vue多选框 某些状态下禁止选择

在做vue多选框的时候&#xff0c;禁止多选&#xff0c;当时想都没想直接在computed里面把row-selection 直接当成方法写在里面了&#xff0c;但是后来发现一些状态不能用&#xff0c;比如清楚多选&#xff0c;selectedRowKeys没有效果&#xff0c;这里记录一下 // 最开始的代码…

Cesium.CustomShader颜色值显示错误

官方示例&#xff1a; Cesium Sandcastle 测试过程&#xff1a; 1、修改示例&#xff0c;把customshader中的fragmentShaderText替换为如下代码 void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material) {//注意&#xff1a;下述颜色的b值是0.1&#x…

智能配电箱监控系统

智能配电箱监控系统是一种用于实时监控配电箱运行状态和电能质量的系统。它通过集成应用物联网技术&#xff0c;实现对配电箱的数据采集、整合和处理&#xff0c;从而让工作人员能够远程了解和掌握配电箱的情况。通过电力设备的数字化&#xff0c;依托电易云-智慧电力物联网&am…

论文 排版

论文格式调整 页眉-不同章节设置不同页眉 页面布局-分隔符-下一页 页码-正文重新从1记页数 待写&#xff1f;&#xff1f;&#xff1f;

数字孪生3D场景开发工具:弥补不足,开拓全新可能

随着数字化时代的来临&#xff0c;越来越多的企业和行业开始探索数字孪生技术的应用。数字孪生是指通过数字技术将现实世界中的物体、场景等复制到虚拟世界中&#xff0c;以实现实时监测、预测和优化。然而&#xff0c;在数字孪生的发展过程中&#xff0c;一些不足也逐渐浮现。…

如何去选择合适的线缆测试仪?CAT8网线认证测试

如何去选择合适的线缆测试仪? 如果你是第三方检测单位&#xff0c;系统集成商&#xff0c;或者线缆生产厂家&#xff0c;我个人建议选择福禄克DSX系列无疑是比较保险的做法&#xff0c;因为考虑到福禄克在国内耕耘多年所积累起来的品牌知名度和口碑&#xff0c;选择一款大家都…

PHP程序员必备技能:OSS云存储实现教程!

近些年来&#xff0c;云存储的应用越来越广泛&#xff0c;阿里云的OSS云存储服务也在国内市场中占据了一席之地。在此基础上&#xff0c;本文将分享如何使用PHP实现OSS云存储。 首先&#xff0c;我们需要在阿里云官网上注册一个账号并创建一个OSS存储空间。创建步骤在官方文档…

C语言-走进指针世界

引入 在C语言的学习过程中&#xff0c;指针是躲不掉的一大困难&#xff0c;开始的时候&#xff0c;可能你会觉得初始化整形指针和解引用不过如此&#xff0c;但是当类型逐渐复杂起来以后&#xff0c;没有对指针和类型的深入理解&#xff0c;想要看懂和很好的运用指针就比较困难…

【华为OD题库-048】拔河比赛-java

题目 公司最近准备进行拔河比赛&#xff0c;需要在全部员工中进行挑选。选拔的规则如下: 1.按照身高优先、体重次优先的方式准备比赛阵容 2.规定参赛的队伍派出10名选手 请实现一个选拔队员的小程序。 输入为一个数组&#xff0c;记录了部门人员的身高、体重信息&#xff0c;如…

Linux下unzip解压乱码问题的解决

1、通过unzip行命令解压&#xff0c;指定字符集 unzip -O CP936 xxx.zip (用GBK, GB18030也可以)CP936其实就是GBK&#xff0c;IBM在发明Code Page的时候将GBK放在第936页&#xff0c;所以叫CP936。GBK全称《汉字内码扩展规范》&#xff08;GBK即“国标”、“扩展”汉语拼音的…

振南技术干货集:各大平台串口调试软件大赏(4)

注解目录 &#xff08;串口的重要性不言而喻。为什么很多平台把串口称为 tty&#xff0c;比如 Linux、MacOS 等等&#xff0c;振南告诉你。&#xff09; 1、各平台上的串口调试软件 1.1Windows 1.1.1 STCISP &#xff08;感谢 STC 姚老板设计出 STCISP 这个软件。&#xf…

相机标定张正友、opencv和halcon对比(1)

本文将从基本标定开始&#xff0c;结合实际工作经验&#xff0c;分析张正友、opencv和halcon三者相机标定的深层原理与不同之处&#xff0c;内容比较多&#xff0c;如果出现错误请指正。 相机光学模型 我们使用的镜头都是由多组镜片组成&#xff0c;它实际上是一种厚透镜模型…

羊大师提问,为什么吃得越咸越容易出现健康问题?

羊大师提问&#xff0c;为什么吃得越咸越容易出现健康问题&#xff1f; 在现代社会中&#xff0c;有一种追求咸味食物的趋势&#xff0c;许多人都钟爱于吃咸味食物。吃咸味食物往往容易导致健康问题&#xff0c;引发各种疾病。那么为什么吃的越咸越容易生病呢&#xff1f; 今…