使用VBA实现快速模糊查询数据

实例需求:基础数据保存在Database工作表中,如下图所示。
在这里插入图片描述
基础数据有37个字段,上图仅展示部分字段内容,下图中黄色字段为需要提取的数据字段。
在这里插入图片描述

Search工作表B1单元格输入查询关键字TitleGenre字段中搜索关键字,包含关键字的数据提取到Search工作表,从第4行开始保存查询结果,如下图所示。
在这里插入图片描述

示例代码如下。

Sub Demo()Dim res(), arr, colsdim lngLstRow as longdim strKey as Stringdim intIndex as Integerdim i as long, j as IntegerlngLstRow = Sheets("Database").Cells(Rows.Count, 1).End(xlUp).Rowarr = Sheets("Database").Range("A2:I" & lngLstRow)ReDim res(1 To lngLstRow, 1 To 6)intIndex = 1cols = Array(1, 3, 5, 7, 8, 9)strKey = Sheets("Search").[b1]For i = 1 To lngLstRow - 1If InStr(1, arr(i, 3) & arr(i, 5), strKey) > 0 ThenFor j = 1 To 6res(intIndex, j) = arr(i, cols(j - 1))NextintIndex = intIndex + 1End IfNextIf intIndex > 1 ThenWith Sheets("Search").Range("4:10000").Clear.Range("A4").Resize(intIndex, 6).Value = resEnd WithEnd If
End Sub

【代码解析】
第7行代码获取基础数据的最后一行所在行号。
第8行代码读取A列到I列数据,由于基础数据字段很多,全部加载到数据中,将占用更多内存,可能导致运行效率下降,因此只加载需要提取部分。
第9行代码重新声明动态数组res用于保存查询结果。
第10行代码设置变量intIndex用于指示数组res中的写入位置。
第11行代码创建数组保存需要提取的列号,这样可以简化提取数据的代码(第15~17行代码)。
第12行代码读取查询关键字。
第13~20行代码循环处理每行数据。
第14行代码判断知道字段是否包含查询关键字,arr(i, 3) & arr(i, 5)将两个字段合并为一个字符串,这样调用一次Instr函数就可以完成查询。
第15~17行代码提取指定的字段,保存到数组res中。
第18行代码变量累加1,指向下一个保存位置。
第22行代码情况保存查询结果单元格区域。
第23行代码判断是否有符合查询添加的结果,如果满足条件,第24行代码将查询结果保存在工作表中。

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

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

相关文章

【数据结构--八大排序】之归并排序

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

Armv9 Cortex-A720的L2 memory system 和 L2 Cache

9 L2 memory system Cortex-A720核心的L2内存系统通过CPU bridge连接core与DynamIQ Shared Unit-120,其中包括私有的L2缓存。 L2缓存是统一的,每个Cortex-A720核心在一个集群中都有私有的L2缓存。 L2内存系统包括使用虚拟地址(VA)和程序计数器(PC)的数据预取引擎。不同…

【2023研电赛】华东赛区一等奖:电动叉车永磁同步电机MTPA及弱磁控制研究

本文为2023年第十八届中国研究生电子设计华东赛区一等奖竞赛作品分享,参加极术社区的【有奖活动】分享2023研电赛作品扩大影响力,更有丰富电子礼品等你来领!,分享2023研电赛作品扩大影响力,更有丰富电子礼品等你来领&a…

Kakfa高效读写数据

1.概述 无论 kafka 作为 MQ 也好,作为存储层也罢,无非就是两个功能:一是 Producer 生产的数据存到 broker,二是 Consumer 从 broker 读取数据。那 Kafka 的快也就体现在读写两个方面了,本文也是从这两个方面去剖析Kafk…

nodejs+vue健身服务应用elementui

第三章 系统分析 10 3.1需求分析 10 3.2可行性分析 10 3.2.1技术可行性:技术背景 10 3.2.2经济可行性 11 3.2.3操作可行性: 11 3.3性能分析 11 3.4系统操作流程 12 3.4.1管理员登录流程 12 3.4.2信息添加流程 12 3.4.3信息删除流程 13 第四章 系统设计与…

数据结构与算法-(7)---栈的应用-(3)表达式转换

🌈write in front🌈 🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由Aileen_0v0🧸 原创 CSDN首发🐒 如…

华为云云耀云服务器 L 实例评测:快速建站的新选择,初创企业和开发者的理想之选

华为云云耀云服务器 L 实例评测:快速建站的新选择,初创企业和开发者的理想之选 文章目录 华为云云耀云服务器 L 实例评测:快速建站的新选择,初创企业和开发者的理想之选导语:摘要: 正文产品概述部署简易性步…

在Windows11家庭中文版中启用Copilot(预览版)

1、下载ViveTool-vx.x.x.zip 2、解压下载的压缩包ViveTool-vx.x.x.zip 3、复制ViveTool文件夹的路径 4、按下wins,打开搜索 5、输入cmd,并选择“以管理员身份运行” 6、在cmd中输入以下命令,进入ViveTool文件夹: cd ViveTool…

BI神器Power Query(26)-- 使用PQ实现表格多列转换(2/3)

实例需求:原始表格包含多列属性数据,现在需要将不同属性分列展示在不同的行中,att1、att3、att5为一组,att2、att3、att6为另一组,数据如下所示。 更新表格数据 原始数据表: Col1Col2Att1Att2Att3Att4Att5Att6AAADD…

接雨水问题

接雨水问题 问题背景 LeetCode 42. 接雨水 接雨水问题是一个经典的计算雨水滞留量的问题,通常使用柱状图来表示不同高度的柱子。在下雨的情况下,柱子之间的凹陷部分能够存储雨水,问题的目标是计算这些柱子所能接收的雨水总量。 相关知识 …

windows系统利用powershell查看系统支持那些Windows功能选项

在PowerShell中,我们可以使用Get-WindowsOptionalFeature cmdlet命令来查看Windows功能选项。 打开PowerShell 输入以下命令:将结果输出到1.log Get-WindowsOptionalFeature -Online >1.log 可以看到在指定路径下看到生成了文件 打开查看内容&…

BI神器Power Query(27)-- 使用PQ实现表格多列转换(3/3)

实例需求:原始表格包含多列属性数据,现在需要将不同属性分列展示在不同的行中,att1、att3、att5为一组,att2、att3、att6为另一组,数据如下所示。 更新表格数据 原始数据表: Col1Col2Att1Att2Att3Att4Att5Att6AAADD…

Halcon中灰度直方图的使用与学习

目录 第一步:当前打开窗口的显示灰度图或者mono图片第二步:激活后,我们可以去调整调整右边直方图灰阶值的中蓝色和红色竖线,获取左边图上的灰阶值的范围内的特征显示。第三步:插入代码:总结:它的直观目的,就是查看灰度的分布情况!灰度直方图,是我们经常使用,抓取不同…

算法的时间复杂度分析习题专题

之前写了一篇重点是讲理论,今天重点在于对于题目的分析 题目难度不分先后,有题目来源会直接给出链接或者位置 第一题:消失的数字 题目来源:LeetCode消失的数字 分析 第一种思路分析: 参考代码: #include …

Git与Repo:开源开发的得力工具组合

Git与Repo:开源开发的得力工具组合 1. 引言 开源开发在当今的软件行业中扮演着至关重要的角色。它不仅推动了技术的创新和进步,也促进了开发者之间的合作与共享。随着越来越多的开源项目的涌现,有效的代码管理和版本控制成为了必不可少的工…

Elasticsearch基础篇(三):Elasticsearch7.x的集群部署

Elasticsearch的集群部署 1. Elasticsearch集群架构主节点数据节点客户端节点分片节点间通信集群状态 2. Elasticsearch集群部署2.1 系统配置修改2.1.1 修改文件句柄数和线程数2.1.2 修改虚拟内存2.1.3 关闭交换空间(Swap) 2.2 下载es数据库并上传到服务…

STM32 定时器介绍--通用、高级定时器

目录 高级定时器 1.功能框图 1-时钟源 2-时基单元 3-输入捕获 4-输出比较 2.输入捕获的应用 3.输出比较的应用 4.初始化结构体 1-时基初始化结构体 2-输出比较结构体 3-PWM信号 周期和占空比的计算--以通用定时器为例 4-输入捕获结构体 5-断路和死区初始化结构体…

Linux 处理文件( touch 命令、cp 命令、mv 命令、rm 命令)

Linux 处理文件 创建文件( touch 命令),复制文件( cp 命令),重命名文件( mv 命令),删除文件(rm 命令) 文章目录 Linux 处理文件一、创建文件&…

Xcode 超简单实用小秘技让撸码进入新境界

概览 Xcode 是开发  应用不可或缺的王牌主力军,虽然 Xcode 中一些常用使用姿势想必大家都已驾轻就熟,但其中仍有一些隐藏宝藏小技巧不为人知。 充分挖掘它们可以极大加速和方便秃头码农们日常的撸码行为。 一般的,它们分为两类&#xff…

Anaconda Jupyter

🙌秋名山码民的主页 😂oi退役选手,Java、大数据、单片机、IoT均有所涉猎,热爱技术,技术无罪 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 获取源码,添加WX 目录 前言An…