相关文章推荐
神勇威武的消炎药  ·  excellvba引用计算机用户名,EXCE ...·  1 月前    · 
知识渊博的紫菜  ·  Excel 效能 - 優化效能阻礙的秘訣 ...·  1 月前    · 
一身肌肉的蛋挞  ·  Android Gradle 4.0 ...·  2 年前    · 
旅行中的充值卡  ·  win10任务栏快捷方式右键的快捷功能无法使 ...·  2 年前    · 
完美的鸵鸟  ·  Qt总结之一:遍历文件夹和文件目录,并过滤和 ...·  2 年前    · 
有情有义的大白菜  ·  前端工作小结71-修改首页布局样式-阿里云开 ...·  2 年前    · 
闷骚的四季豆  ·  node.js - Error: ...·  2 年前    · 
Code  ›  Excel实战技巧53: 在VBA代码中使用工作表公式更有效地实现查找开发者社区
电子表格 查找算法 vba
https://cloud.tencent.com/developer/article/1509650
英姿勃勃的冰淇淋
2 年前
作者头像
fanjy
0 篇文章

Excel实战技巧53: 在VBA代码中使用工作表公式更有效地实现查找

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 完美Excel > 正文

Excel实战技巧53: 在VBA代码中使用工作表公式更有效地实现查找

发布 于 2019-09-19 17:21:05
1.3K 0
举报

excelperfect

在工作表中查找值是很常见的操作,我们可以使用VLOOKUP函数、MATCH函数、INDEX函数等来查找值。当使用VBA代码在大量的数据中进行查找操作时,灵活运用工作表公式,往往能够提高效率。

下图1所示的工作表,要在列G中查找列A中的值,如果找到则将G列中相应行对应的列H中的值复制到列A中相应行的列B中。

图1

例如,单元格A2中的“砖基础”与单元格G3中的值相同,则将单元格H3中的值复制到单元格B2中,如下图2所示。

图2

首先,定义一个动态名称,以便列G中添加项目时能够自动更新。

名称: LookupRange

引用位置: =OFFSET(Sheet1!$G$2,0,0,COUNTA(Sheet1!$G:$G)-1)

接着,在VBE的标准模块中输入代码:

Sub CopyData()

Dim lLastRowA As Long

Dim rngA As Range

Dim rngValueA As Range

Dim lRow As Long

'列A中有数据的最后一行的行号

lLastRowA = Cells(Rows.Count,1).End(xlUp).Row

'设置需要处理的数据区域

Set rngA = Range("A2:" &"A" & lLastRowA)

'遍历需要处理的数据区域

For Each rngValueA In rngA

'使用工作表函数查找数据所在的行并返回行号

lRow = Application.WorksheetFunction. _

Match(rngValueA, [LookupRange], 0) +1

'如果找到则进行相应的操作

If lRow > 0 Then

Range("B" &rngValueA.Row) = Range("H" & lRow)

lRow = 0

End If

Next

End Sub

常规操作是使用两个循环来查找值,即在第一个For Each循环中再使用一个For Each循环遍历列G中的内容来查找,但使用工作表公式使得程序代码更简洁,效率更高。

说明:本文的例子只是演示公式在VBA中的运用。其实,本例在工作表中使用VLOOKUP函数也很容易。

点击展开阅读全文
文章分享自微信公众号:
完美Excel
完美Excel

扫码关注公众号

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

原始发表:2019-09-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

vba
编程算法
登录 后参与评论
关于作者
0
文章
0
累计阅读量
0
获赞
前往专栏
关注 - 腾讯云 开发者 公众号
将获得
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
扫码关注腾讯云开发者
NEW
切换旧版
领券
  • 社区

    • 专栏文章
    • 阅读清单
    • 互动问答
    • 技术沙龙
    • 技术视频
    • 团队主页
    • 腾讯云TI平台
  • 活动

    • 自媒体分享计划
    • 邀请作者入驻
    • 自荐上首页
    • 技术竞赛
  • 资源

    • 技术周刊
    • 社区标签
    • 开发者手册
    • 开发者实验室
  • 关于

    • 社区规范
    • 免责声明
    • 联系我们
    • 友情链接

腾讯云开发者

扫码关注腾讯云开发者

扫码关注腾讯云开发者

领取腾讯云代金券

热门产品

  • 域名注册
  • 云服务器
  • 区块链服务
  • 消息队列
  • 网络加速
  • 云数据库
  • 域名解析
  • 云存储
  • 视频直播

热门推荐

  • 人脸识别
  • 腾讯会议
  • 企业云
  • CDN加速
  • 视频通话
  • 图像分析
  • MySQL 数据库
  • SSL 证书
  • 语音识别

更多推荐

  • 数据安全
  • 负载均衡
  • 短信
  • 文字识别
  • 云点播
  • 商标注册
  • 小程序开发
  • 网站监控
  • 数据迁移

Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有

深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569

腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287

问题归档 专栏文章 快讯文章归档 关键词归档 开发者手册归档 开发者手册 Section 归档
 
推荐文章
神勇威武的消炎药  ·  excellvba引用计算机用户名,EXCEL VBA 取当前登录 用户名的多种实现方法
1 月前
知识渊博的紫菜  ·  Excel 效能 - 優化效能阻礙的秘訣 | Microsoft Learn
1 月前
一身肌肉的蛋挞  ·  Android Gradle 4.0 R.java文件去哪儿了,R.id.xxx为啥不是真正的控件Id - 掘金
2 年前
旅行中的充值卡  ·  win10任务栏快捷方式右键的快捷功能无法使用 - Microsoft Community
2 年前
完美的鸵鸟  ·  Qt总结之一:遍历文件夹和文件目录,并过滤和获取文件信息、后缀名、前缀名(一)_qt 文件夹遍历-CSDN博客
2 年前
有情有义的大白菜  ·  前端工作小结71-修改首页布局样式-阿里云开发者社区
2 年前
闷骚的四季豆  ·  node.js - Error: Jest: Got error running globalSetup - /home/pptruser/app/node_modules/jest-environment-puppeteer/setup.js - Stack
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号