实用VBA:14.在二维数组中查找特定元素

文章讲述了如何在大量分散的表格中,利用VBA和二维数组,通过遍历和查找功能,快速匹配编号与名称信息,提高处理效率。作者分享了VBA代码示例,以实现从对应关系表中按需获取名称的自动化过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.需求场景

今天遇到个问题,需要对大量表格中的“编号”字段对应补充上“名称”信息。已有“编号”与“名称"的对应关系表,"编号"是个具有唯一性的字段。需要处理的大量表格中出现的编号都可以在在对应关系表中找到,姓名与编号是一对一关系。

2.解决思路

如果是单一或者少量的表格需要处理,可以使用vlookup函数,按照编号将名称匹配到需要处理的表格中即可。可是需要处理的表格是大量分散的文件,如果再用vlookup函数一个个处理,就会耗费大量的时间。这时就可以利用以前介绍过的批量提取文件路径的方法(具体见【实用VBA:6.一键批量提取文件名和存储路径】),先提取文件路径;再利用一个循环遍历各个文件,逐一打开文件;然后再按照vlookup函数的思路,逐行判断编号字段所在的列单元格中的编号值与“编号名称对应表”中的哪个编号一致;再从对应表中取出对应的那一行的“名称”信息,填入待处理的表格中;以此循环往复……

那么每次查找“编号名称对应表”中那个对应的编号都访问一遍这个表格似乎有点麻烦。频繁在待处理表和对应表之间切换也比较费时间。于是,考虑到我的“编号名称对应表”只有1000+条数据,决定使用数组来处理。

  • 先把对应关系表读入一个二维数组中,n行,2列,n即为对应关系表的条数,2列的值分别是“编号”和“名称”。
  • 打开待处理表格之后,取出一个编号,拿这个编号和二维数组中的编号逐一对比。
  • 找到二维数组中匹配的编号后,读取该数组当前行的“名称”
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值