第7讲:VBA中利用FIND的代码实现多值查找实例

news2024/11/21 0:21:05

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

这套教程共三册,一百四十七讲,内容覆盖较广,也是初级和中级间的过渡教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码。今后一段时间会给大家陆续推出。今日的内容是第7讲:VBA中利用FIND的代码实现多值查找实例8c033ddcaa02915209d7d8c85980afaf.jpeg

【分享成果,随喜正能量】你过去的业障,现在它生起了,你想修道,它给你做障碍,所以你心里不安。那你怎么办?你认识它了,安一安吧!当你心不安的时候,不要打坐,也不要参禅。做什么?读诵大乘,最好的方法就是读诵大乘。。

第七讲  使用Find方法,查找单元格

在Excel中使用查找对话框可以查找工作表中特定内容的单元格,而在VBA中则使用Find方法,这个方法是我比较喜欢的方法,在EXCEL中用LOOKUP可以的实现的内容均在使用FIND的方法之内。

l应用于Range对象的Find方法在区域中查找特定信息,并返回Range对象,该对象代表用于查找信息的第一个单元格。如果未发现匹配单元格,就返回Nothing。

语法如下:

expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SerchFormat)

参数:

1) expression是必需的,该表达式返回一个Range对象。

2) What是必需的,要搜索的数据,可为字符串或任意数据类型。

3) After是可选的,表示搜索过程将从其之后开始进行的单元格,必须是区域中的单个单元格。查找时是从该单元格之后开始的,直到本方法绕回到指定的单元格时,才对其进行搜索。如果未指定本参数,搜索将从区域的左上角单元格之后开始。

在本例中将After参数设置为A列的最后一个单元格,所以查找时从A1单元格开始搜索。

4) LookIn是可选的,信息类型。xlValues对应 值;xlFormulas 对应 公式;xlComments对应 批注

5) LookAt是可选的,可为XlLookAt常量的xlWhole 或xlPart之一。

6) SearchOrder是可选的,可为XlSearchOrder常量的xlByRows或xlByColumns之一。

7) SearchDirection是可选的,搜索的方向,可为XlSearchDirection常量的xlNext或xlPrevious之一。

8) MatchCase是可选的,若为True,则进行区分大小写的查找。默认值为False。

9) MatchByte是可选的,仅在选择或安装了双字节语言支持时使用。若为True,则双字节字符仅匹配双字节字符。若为False,则双字节字符可匹配其等价的单字节字符。

10) SerchFormat是可选的,搜索的格式。

l每次使用Find方法后,参数LookIn、LookAt、SearchOrder 和MatchByte的设置将保存。如果下次调用Find方法时不指定这些参数的值,就使用保存的值。因此每次使用该方法时请明确设置这些参数。

l如果工作表的A列中存在重复的数值,那么需要使用FindNext方法或FindPrevious方法进行重复搜索,如下面的代码所示。

2VBA中利用FIND的代码实现多值查找实例

Sub mynz_7() '第7讲 使用Find方法,查找单元格

 Dim StrFind As String

 Dim Rng As Range

 Dim FindAddress As String

   StrFind = InputBox("请输入要查找的值:")

&nbsp;&nbsp;&nbsp;If Trim(StrFind) <> "" Then

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;With Sheets("7").Range("A:A")

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set Rng = .Find(What:=StrFind, _

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;After:=.Cells(.Cells.Count), _

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LookIn:=xlValues, _

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LookAt:=xlWhole, _

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SearchOrder:=xlByRows, _

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SearchDirection:=xlNext, _

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MatchCase:=False)

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Not Rng Is Nothing Then

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FindAddress = Rng.Address

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Do

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rng.Interior.ColorIndex = 6 '设置成黄色

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set Rng = .FindNext(Rng)

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Loop While Not Rng Is Nothing And Rng.Address <> FindAddress

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End With

&nbsp;&nbsp;&nbsp;End If

&nbsp;&nbsp;End Sub

代码解析:以上过程在工作表Sheets(“7”)的A列中查找InputBox函数对话框中所输入的值,并将查到单元格底色设置成黄色。

第7行代码使用Find方法在工作表Sheets(“7”)的A列中查找。

第16行代码将查找到的第一个单元格地址赋给字符串变量FindAddress。

第18行代码将查找到的单元格底色设置成黄色。

第19行代码使用FindNext方法进行重复搜索。

lFindNext方法继续执行用Find方法启动的搜索。查找下一个匹配相同条件的单元格并返回代表单元格的Range对象,语法如下:

expression.FindNext(After)

参数

1)expression是必需的,返回一个Range对象。

2)After是可选的,指定一个单元格,查找将从该单元格之后开始。

第20行代码如果查找到的单元格地址等于字符串变量FindAddress所记录的地址,说明A列已搜索完毕,结束查找过程。

3&nbsp;&nbsp;VBA中利用FIND的代码实现多值查找的代码运行

1):代码截图:

317c73b89981796d52b107ddada21e99.jpeg

2)开始运行:

8f321c300e9a670120b708a3c0b467a9.jpeg

3)返回结果:

a01e5797d200100e427f5b0426d2f9af.jpeg

今日内容回向:

1&nbsp;FIND方法有哪些利用价值?

2 如何实现多值的查找?

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

bd85fb951f1160e56cf76b781109adb0.jpeg

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


67e5652622dfeeeec3f5094b776c7a99.jpeg

3683bc95ca2664c9ddaf35b9b0dc473d.jpeg

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

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

相关文章

diffusers-AutoPipline

https://huggingface.co/docs/diffusers/tutorials/autopipelinehttps://huggingface.co/docs/diffusers/tutorials/autopipelineAutoPipeline会自动检测要使用的正确流程类&#xff0c;这样可以更轻松地加载与任务相对应的检查点&#xff0c;而无需知道具体的流程类名称。 1.…

.net core iis 发布后登入的时候请求不到方法报错502

.net core iis 发布后登入的时候请求不到方法报错502 502 bad gateway 502 - Web 服务器在作为网关或代理服务器时收到了无效响应。 您要查找的页面有问题&#xff0c;无法显示。当 Web 服务器(作为网关或代理)与上游内容服务器联系时&#xff0c;收到来自内容服务器的无效…

配置管理工具-Confd

1 简介 1.1 Confd介绍 Confd是一个轻量级的配置管理工具。通过查询后端存储&#xff0c;结合配置模板引擎&#xff0c;保持本地配置最新&#xff0c;同时具备定期探测机制&#xff0c;配置变更自动reload。对应的后端存储可以是etcd&#xff0c;redis、zookeeper等。[1] 通过…

2024年湖北黄冈建安ABC建筑企业专职安全员报名事项

2024年湖北黄冈建安ABC建筑企业专职安全员报名事项 专职安全员一般是指从事安全管理方面的工作&#xff0c;普遍的是建筑施工行业&#xff0c;建筑工地安全员&#xff0c;专职安全员C证&#xff0c;黄冈建筑安全员ABC-建筑单位在黄冈&#xff0c;只能在黄冈报考建筑安全员ABC。…

div 中文本太长用省略号隐藏展示,鼠标放上来弹出提示

需求描述 div 中有一行文本。 文本特别特别的长&#xff0c; 反正是超出了div所容纳的长度。 你呢&#xff0c; 现在想要的效果是&#xff1a; 1.文本就展示一行&#xff0c;多余的部分用省略号代替展示&#xff1b; 2.鼠标放上去的时候&#xff0c;用tip的方式展示完整的信息…

【AIFEM案例分析】药柱随机响应分析

AIFEM是由天洑自主研发的一款通用的智能结构仿真软件&#xff0c;助力用户解决固体结构相关的静力学、动力学、振动、热力学等实际工程问题&#xff0c;软件提供高效的前后处理工具和高精度的有限元求解器&#xff0c;帮助用户快速、深入地评估结构的力学性能&#xff0c;加速产…

三分钟学习一个python小知识9-----------我的对python中random的理解

文章目录 random库一、生成随机浮点数二、生成指定范围内的随机整数三、生成指定范围内的随机浮点数四、从序列中随机选择元素总结 random库 在Python中&#xff0c;random库是用于生成随机数的。 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、生…

xx is not in the sudoers file. This incident will be reported

虚拟机再执行 sudo 命令的时候&#xff0c;出现类似这样的报错&#xff1a; xx is not in the sudoers file. This incident will be reported 其实&#xff0c;背景是这样的&#xff0c;我自己没事瞎作死&#xff0c;干了个这事&#xff0c;给 /etc/sudoers 文件的最下面一行…

软件开发全文档归档,开发、管理、实施、运维、服务巡检、信息安全、安全运维

在当今高度信息化的时代&#xff0c;软件开发已成为推动社会进步和发展的重要力量。软件开发过程中&#xff0c;文件支撑作为关键的一环&#xff0c;对于保障项目的顺利进行和产品的质量具有不可替代的作用。本文将探讨软件开发所需的主要文件及其作用。 一、引言 软件开发是…

C++核心编程---友元

目录 友元 友元的关键字 friend 友元的三种实现方式 1. 全局函数做友元 2. 类做友元 3. 成员函数做友元 友元 生活中你的家有客厅(Public)&#xff0c;有你的卧室(Private) 客厅所有来的客人都可以进去&#xff0c;但是你的卧室是私有的&#xff0c;也就是说只有你能进…

通过率90%的软件测试简历长什么样?

作为软件测试的从业者&#xff0c;面试或者被面试都是常有的事。 可是不管怎样&#xff0c;和简历有着理不清的关系&#xff0c;面试官要通过简历了解面试者的基本信息、过往经历等。 面试者希望通过简历把自己最好的一面体现给面试官&#xff0c;所以在这场博弈中&#xff0…

抖音小店怎么做?五步教你做好抖店,新手快来看!

我是电商珠珠 新手在做抖音小店的时候&#xff0c;往往在入驻完成之后&#xff0c;就不知道后续应该怎么操作了。 我将抖店的运营分为了五个步骤&#xff0c;可以供大家参考。 一、类目 开店之前选择好的类目&#xff0c;后续如果想要更改的话可以随时更改。 不过需要下架…

vue中watch实现翻译案例

翻译案例需要向在线接口发起一个Ajax请求&#xff0c;所以需要引入axios库。当输入一个单词或者文字时自动发起翻译请求。所以可以使用watch监听器来监听属性是否变更&#xff0c;当发生变化即发起翻译请求。 // 该方法会在数据变化时调用执行 // newValue新值, oldValue老值&…

linux环境mysql安装配置踩坑

背景&#xff1a; 最近公司项目希望改造工作流ACTIVITI5.x的源码框架支持大数据量&#xff08;历史表单表数据达到10亿&#xff09;&#xff0c; 方案暂定为 1.使用动态数据源 2.将工作流归档历史数据数据保存到一个库中这里定义为读库&#xff0c; 3.在办办件的数据单独一个库…

人工智能基础_机器学习012_手写梯度下降代码演示_手动写代码完成梯度下降_并实现梯度下降可视化---人工智能工作笔记0052

可以看到上面我们那个公式,现在我们用梯度下降实现一下,比如我们有一堆数据,但是没有方程的情况下,我们来看一下如果计算,对应的w值也就是seta值对吧,没有方程我们可以使用梯度下降 这里首先我们可以设置一个0.0001.我们知道梯度下降的公式, 梯度下降刚开始的时候,下降会快,然…

基于FPGA的图像差分运算及目标提取实现,包含testbench和MATLAB辅助验证程序

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 2022/07/28 01:51:…

k8spod

pod基本概念 (几种容器) pod 是k8s最小的创建和运行单元 一个pod包含几个容器&#xff0c;1个根容器/父容器/基础容器&#xff0c;一个或者多个应用容器/业务容器&#xff0c;pause容器 pod里面容器共享 network UTS IPC命令空间 k8s 创建的Pod 分为两种&#xff1a; 自主…

洞见UI自动化测试

随着软件行业的不断发展&#xff0c;建立一个完善的自动化测试体系变得至关重要。自动化测试包括三个方面&#xff1a;UI前端界面&#xff0c;Service服务契约和Unit底层单元如下图&#xff1a; 越是底层的测试&#xff0c;运行速度越快&#xff0c;时间开销越少&#xff0c;金…

Yakit工具篇:WebFuzzer模块之重放和爆破

简介 Yakit的Web Fuzzer模块支持用户自定义HTTP原文发送请求。为了让用户使用简单&#xff0c;符合直觉&#xff0c;只需要关心数据相关信息&#xff0c;Yakit后端(yaklang)做了很多工作。 首先我们先来学习重放请求的操作&#xff0c;在日常工作中可以使用 Web Fuzzer进行请…

九、W5100S/W5500+RP2040树莓派Pico<SNTP 获取网络时间>

文章目录 1 前言2 协议简介2.1 什么是SNTP2.2 SNTP的优点2.3 SNTP原理2.4 应用场景 3 WIZnet以太网芯片4 SNTP网络设置示例概述以及使用4.1 流程图4.2 准备工作核心4.3 连接方式4.4 主要代码概述4.5 结果演示 5 注意事项6 相关链接 1 前言 随着科技的不断进步和应用需求的不断变…