VBA信息获取与处理第五节:如何在单个工作表中查找某个给定值
《VBA信息获取与处理》教程(版权10178984)是我推出第六套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。这部教程给大家讲解的内容有:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪贴板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。程序文件通过32位和64位两种OFFICE系统测试。是非常抽象的,更具研究的价值。
教程共两册,二十个专题。今日分享内容是:VBA信息获取与处理第四个专题第五节:如何在单个工作表中查找某个给定值
【分享成果,随喜正能量】如果你心眼挺好,又有德行,那你一定有福报。如果有福报,却依然发不了财,请不要疑惑,老天可能将你的福报化成了健康的身体,平安的日子,温暖的家庭,和有良德的子孙后代。福报不一定让你很有钱,但一定会让你成为最圆满的自己。。
专题四 EXCEL工作表数据的读取、回填和查找
这个专题,我们讲解工作表数据的处理的问题,对于VBA而言,我给予的定位是“实现个人小型数据自动化处理的利器”,对于大多数朋友而言,利用VBA是与EXCEL相关联的,很多的代码也是用于处理EXCEL内或者相关的各种数据,工作表更是作为和用户的交互对象而存在,那么对于工作表的数据如何进行查找,以及如何读取就是一个十分关键的课题,我们这讲就来主要讲解这个问题。

第五节 如何在单个工作表中查找某个给定值
这个专题将的是工作表数据的操作,在前几讲中,我们讲了工作表数据和VBA直接的传输,这讲的内容仍是和工作表相关,就是如何在工作表中查找到某个值,在《VBA代码解决方案》中,我也曾经讲到过FIND方法,甚至提出这是LOOKUP函数的终结者。那么如何利用FIND方法解决问题呢?
1 Find方法和FindNext方法
1) 我们先来看看FIND方法的语法和参数:
语法:expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SerchFormat)
参数expression是必需的,该表达式返回一个Range对象。
参数What是必需的,要搜索的数据,可为字符串或任意数据类型。
参数After是可选的,表示搜索过程将从其之后开始进行的单元格,必须是区域中的单个单元格。查找时是从该单元格之后开始的,直到本方法绕回到指定的单元格时,才对其进行搜索。如果未指定本参数,搜索将从区域的左上角单元格之后开始。
参数LookIn是可选的,信息类型。xlValues对应 值;xlFormulas 对应 公式;xlComments对应 批注
参数LookAt是可选的,可为XlLookAt常量的xlWhole 或xlPart之一。
参数SearchOrder是可选的,可为XlSearchOrder常量的xlByRows或xlByColumns之一。
参数SearchDirection是可选的,搜索的方向,可为XlSearchDirection常量的xlNext或xlPrevious之一。
参数MatchCase是可选的,若为True,则进行区分大小写的查找。默认值为False。
参数MatchByte是可选的,仅在选择或安装了双字节语言支持时使用。若为True,则双字节字符仅匹配双字节字符。若为False,则双字节字符可匹配其等价的单字节字符。
参数SerchFormat是可选的,搜索的格式。
需要注意的是:每次使用Find方法后,参数LookIn、LookAt、SearchOrder 和MatchByte的设置将保存。如果下次调用Find方法时不指定这些参数的值,就使用保存的值。因此每次使用该方法时请明确设置这些参数。
2) FindNext方法继续执行用Find方法启动的搜索。查找下一个匹配相同条件的单元格并返回代表单元格的Range对象
语法:expression.FindNext(After)
参数expression是必需的,返回一个Range对象。
参数After是可选的,指定一个单元格,查找将从该单元格之后开始。
2 利用Find方法在工作表中实现单值查找
为了实现在工作表中的单值查找,我们可以利用下面的代码:
Sub MYNZI() '工作表唯一查询
Dim FJX As Variant
Sheets("Sheet5").Select
Range("i2 : I3000").ClearContents
i = 2
Do While Cells(i, "h") <> ""
Cells(i, "h").Select
UU = Cells(i, "h")
Set FJX = Sheets("Sheet5").Columns("A").Find(UU, lookat:=xlWhole)
If Not FJX Is Nothing Then
Cells(i, "i") = Sheets("Sheet5").Cells(FJX.Row, 2).Value
End If
i = i + 1
Loop
MsgBox ("OK")
End Sub
代码截图:

代码讲解:上述代码实现了在工作表A列中查找H列的唯一值的方案,首先我们清空了要回填的数据区域Range("i2 : I3000").ClearContents,然后利用:
Set FJX = Sheets("Sheet5").Columns("A").Find(UU, lookat:=xlWhole)
来实现我们的查找,lookat:=xlWhole 是完全匹配,当然我们还可以利用其它参数来实现特定的匹配。
上面的这段代码中我保留了工作表的名称,这样以后大家利用起来可以直接的拷贝代码,进行必要的修改即可。当然,找到唯一的值后可以提取的数据可以根据实际情况需要做进一步的改进。
我们看看程序的运行结果:

3 利用FindNext方法在工作表中实现多值查找
为了实现在工作表中的多值查找我们可以使用FindNext方法,这个方法的好处就是可以查到多个值。在查找的过程中我们要设定起始位置,下面的代码是比较经典的代码,大家可以利用:
Sub MYNZJ() '工作表非唯一查询
Dim bcontinue As Boolean
Dim mysearch As Range
Dim myfind As Range
Dim fristmyfind As String
Sheets("Sheet6").Select
Range("i2 : I3000").ClearContents
i = 2
Do While Cells(i, "h") <> ""
Cells(i, "h").Select
bcontinue = True
Set mysearch = Sheets("Sheet6").Range("A1 : A" & Sheets("Sheet6").Range("A1").End(xlDown).Row)
Set myfind = mysearch.Find(what:=Cells(i, "h"), lookat:=xlWhole)
If Not myfind Is Nothing Then fristmyfind = myfind.Address
Do Until myfind Is Nothing Or Not bcontinue
Cells(i, "i") = Cells(i, "i") & " " & Sheets("Sheet6").Cells(myfind.Row, 2)
Set myfind = mysearch.FindNext(myfind)
If myfind.Address = fristmyfind Then bcontinue = False
Loop
Set myfind = Nothing
i = i + 1
Loop
Set mysearch = Nothing
MsgBox ("OK!")
End Sub
代码截图:

代码讲解:
上述代码实现了工作表A列中的多值查找,当在A列中存在H列的值时返回数值,注意这里的查找开始表示是fristmyfind = myfind.Address,一直循环到这个地址再次出现。
下面我们看看代码的运行结果:

利用Find和FindNext方法从而实现了工作表中的单一值查询和多值的查询。
本节知识点回向:如何实现工作表中的单一值查询?如何实现工作表中的多值查询?
本专题参考程序文件:004工作表.XLSM
我20多年的VBA实践经验,全部浓缩在下面的各个教程中,教程学习顺序:



相关文章:
VBA信息获取与处理第五节:如何在单个工作表中查找某个给定值
《VBA信息获取与处理》教程(版权10178984)是我推出第六套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。这部教程给大家讲解的内容有:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互…...
版本控制器Git和gdb
一.版本控制器Git 1.版本控制简单来讲可以对每一份代码版本进行复制保存,保证每一版代码都可查 2.仓库的本质也是一个文件夹 3.git既是一个客户端,也是一个服务器,是一个版本控制器。而gitee和GitHub都是基于git的网站或平台 4.git的基本…...
关于tresos Studio(EB)的MCAL配置之GPT
概念 GPT,全称General Purpose Timer,就是个通用定时器,取的名字奇怪了点。定时器是一定要的,要么提供给BSW去使用,要么提供给OS去使用。 配置 General GptDeinitApi控制接口Gpt_DeInit是否启用 GptEnableDisable…...
大学至今的反思与总结
现在是2025年的3月5日,我大三下学期。 自大学伊始,我便以考研作为自己的目标,有时还会做自己考研上岸头部985,211,offer如潮水般涌来的美梦。 但是我却忽略了一点,即便我早早下定了决心去考研,但并没有早…...
我们来学nginx -- 优化下游响应速度
优化下游响应速度 题记启用 Gzip 压缩优化缓冲区设置设置超时时间 题记 专家给出的配置文件真是…,信息量有点大啊! nginx:我只想作为一个简单的代理专家爸爸:都是为了你好! 这样,先从有关响应速度的角度&…...
国内外优秀AI外呼产品推荐
在数字化转型浪潮中,AI外呼系统凭借其高效率、低成本、精准交互的特点,成为企业客户触达与服务的核心工具。本文基于行业实践与技术测评,推荐国内外表现突出的AI外呼产品,重点解析国内标杆企业云蝠智能,并对比其他代表…...
观察者模式的C++实现示例
核心思想 观察者模式是一种行为型设计模式,定义了对象之间的一对多依赖关系。当一个对象(称为Subject,主题)的状态发生改变时,所有依赖于它的对象(称为Observer,观察者)都会自动收到…...
爬虫(持续更新ing)
爬虫(持续更新ing) # 网络请求 # url统一资源定位符(如:https://www.baidu.com) # 请求过程:客户端的web浏览器向服务器发起请求 # 请求又分为四部分:请求网址,请求方法(…...
AD学习-最小系统板,双层
第一章 简单电阻容模型的创建 捕捉栅格在摆放器件时,一般设置成 10mil。移动器件时一般设置成100mil。 比如绘制电容的原理图库,直接就是两根线条竖着成电容, 按Tab键进行颜色变更,按shift键拖动会复制一个出来。 …...
自动驾驶---不依赖地图的大模型轨迹预测
1 前言 早期传统自动驾驶方案通常依赖高精地图(HD Map)提供道路结构、车道线、交通规则等信息,可参考博客《自动驾驶---方案从有图迈进无图》,本质上还是存在问题: 数据依赖性高:地图构建成本昂贵…...
【五.LangChain技术与应用】【8.LangChain提示词模板基础:从入门到精通】
早上八点,你端着咖啡打开IDE,老板刚甩来需求:“做个能自动生成产品描述的AI工具”。你自信满满地打开ChatGPT的API文档,结果半小时后对着满屏的"输出结果不稳定"、"格式总出错"抓耳挠腮——这时候你真需要好好认识下LangChain里的提示词模板了。 一、…...
【AGI】智谱开源2025:一场AI技术民主化的革命正在到来
智谱开源2025:一场AI技术民主化的革命正在到来 引言:开源,一场技术平权的革命一、CogView4:中文AI生成的里程碑1. 破解汉字生成的“AI魔咒”2. 开源协议与生态赋能 二、AutoGLM:人机交互的范式跃迁1. 自然语言驱动的跨…...
Markdown HTML 图像语法
插入图片 Markdown 一般来说,直接复制粘贴过来就行了,部分网页/应用可以拖拽,没人会真敲图片的链接吧…… 示例图片: 总架构师,15年工作经验,精通Java编…...
国产化替换案例:CACTER邮件网关为Groupwise系统加固邮件安全防线
电子邮件作为企业信息流转的命脉,承载着商业机密与客户数据。然而,网络攻击手段日益复杂,钓鱼邮件等威胁正快速侵蚀企业安全防线。据《2024年第四季度企业邮箱安全性研究报告》显示,2024年Q4企业邮箱用户遭遇的钓鱼邮件数量激增至…...
Element UI-Select选择器结合树形控件终极版
Element UI Select选择器控件结合树形控件实现单选和多选,并且通过v-model的方式实现节点的双向绑定,封装成vue组件,文件名为electricity-meter-tree.vue,其代码如下: <template><div><el-select:valu…...
《底层逻辑》总结书摘
《底层逻辑》由张羽所著,聚焦于职场与个人发展,深入阐述了定位、结果、学习等十大底层逻辑,旨在帮助读者掌握思考和解决问题的有效方法,提升职场竞争力与个人成就。 核心观点:思维和行动决定命运,格局与价值…...
【Linux】【网络】UDP打洞-->不同子网下的客户端和服务器通信(未成功版)
【Linux】【网络】UDP打洞–>不同子网下的客户端和服务器通信(未成功版) 上次说基于UDP的打洞程序改了五版一直没有成功,要写一下问题所在,但是我后续又查询了一些资料,成功实现了,这次先写一下未成功的…...
【微信小程序】每日心情笔记
个人团队的比赛项目,仅供学习交流使用 一、项目基本介绍 1. 项目简介 一款基于微信小程序的轻量化笔记工具,旨在帮助用户通过记录每日心情和事件,更好地管理情绪和生活。用户可以根据日期和心情分类(如开心、平静、难过等&#…...
PMP项目管理—沟通管理篇—3.监督沟通
文章目录 基本信息4W1HITTO输入工具与技术输出 工作绩效信息和变更请求 基本信息 4W1H what: 确保满足项目及其相关方的信息需求的过程。why: 通过监督沟通过程,来确定规划的沟通工作和沟通活动是否如预期,提高或保持了相关方对项目可交付成果与预计结…...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
