在一个列表中复制相关数据到另一个列表
本程序的功能是,根据单元格I1中的值,在单元格区域A1:D11中的B列进行查找,每次找到相应的值,就将该单元格所在区域的行数据复制到以单元格G3(该单元格命名为found)开始的区域中。原数据如下图2所示。

图2:原始数据
点击工作表中的“查找”按钮,运行后的结果如下图3所示。

图3:运行后的结果
源程序代码清单及相关说明如下:

 
Option Explicit
Sub FindSample2()
Dim ws As Worksheet
Dim rgSearchIn As Range
Dim rgFound As Range
Dim sFirstFound As String
Dim bContinue As Boolean
ReSetFoundList '初始化要复制的列表区域
  Set ws = ThisWorkbook.Worksheets("sheet1")
bContinue = True
Set rgSearchIn = GetSearchRange(ws) '获取查找区域

'设置查找参数
  Set rgFound = rgSearchIn.Find(what:=ws.Range("I1").Value, _
LookIn:=xlValues, LookAt:=xlWhole)
'获取第一个满足条件的单元格地址,作为结束循环的条件
  If Not rgFound Is Nothing Then sFirstFound = rgFound.Address
Do Until rgFound Is Nothing Or Not bContinue
CopyItem rgFound
Set rgFound = rgSearchIn.FindNext(rgFound)
'判断循环是否中止
    If rgFound.Address = sFirstFound Then bContinue = False
Loop
Set rgSearchIn = Nothing
Set rgFound = Nothing
Set ws = Nothing
End Sub
'获取查找区域,即B列中的"部位"单元格区域
Private Function GetSearchRange(ws As Worksheet) As Range
Dim lLastRow As Long
lLastRow = ws.Cells(65536, 1).End(xlUp).Row
Set GetSearchRange = ws.Range(ws.Cells(1, 2), ws.Cells(lLastRow, 2))
End Function
'复制查找到的数据到found区域
Private Sub CopyItem(rgItem As Range)
Dim rgDestination As Range
Dim rgEntireItem As Range
'获取在查找区域中的整行数据
  Set rgEntireItem = rgItem.Offset(0, -1)
Set rgEntireItem = rgEntireItem.Resize(1, 4)
Set rgDestination = rgItem.Parent.Range("found")
'定位要复制到的found区域的第一行
  If IsEmpty(rgDestination.Offset(1, 0)) Then
Set rgDestination = rgDestination.Offset(1, 0)
Else
Set rgDestination = rgDestination.End(xlDown).Offset(1, 0)
End If
'复制找到的数据到found区域
  rgEntireItem.Copy rgDestination
Set rgDestination = Nothing
Set rgEntireItem = Nothing
End Sub
'初始化要复制到的区域(found区域)
Private Sub ReSetFoundList()
Dim ws As Worksheet
Dim lLastRow As Long
Dim rgTopLeft As Range
Dim rgBottomRight As Range
Set ws = ThisWorkbook.Worksheets("sheet1")
Set rgTopLeft = ws.Range("found").Offset(1, 0)
lLastRow = ws.Range("found").End(xlDown).Row
Set rgBottomRight = ws.Cells(lLastRow, rgTopLeft.Offset(0, 3).Column)
ws.Range(rgTopLeft, rgBottomRight).ClearContents
Set rgTopLeft = Nothing
Set rgBottomRight = Nothing
Set ws = Nothing
End Sub
 
 

查找某个数据,找到后把符合条件数据的一行复制到另外一个地方相关推荐

  1. numpy找到数组中符合条件的数

    numpy找到数组中符合条件的数 import numpy as nparr = np.array([1, 1, 1, 134, 45, 3, 46, 45, 65, 3, 23424, 234, 1 ...

  2. R语言 | 利用tushare下载中小板所有股票数据并筛选出符合条件的股票

    作者的tushare ID:456548 作者在股市进行比较短线的投资,开发了一些高效的指标作为买卖的参考,于是需要k线.市值.换手率等数据进行研究,同花顺等软件上面大多数据不能导出,所以找到了tus ...

  3. js数组查找最接近_js查找数组所有符合条件数据 js替换数组中的某个元素

    thinkphp一大堆数据的数组怎么做为条件去查询数据库? 在后台代码中将数组assign出去,然后在模板的js代码中就可以通过{$array}调用啦. 如果我们在Action中赋值了一个name模板 ...

  4. mysql同时查出符合条件数据与总数

    SQL_CALC_FOUND_ROWS是mysql特有的保留字,与此对应使用的 函数是 FOUND_ROWS(),可以在查出数据的同时查出所有满足条件的数据量.例如: SELECT SQL_CALC_ ...

  5. uiautomator2.0封装点击元素的方法(如果没有找到则滚动屏幕查找,直到找到后点击)

    //点击public static void click(BySelector by) {mDevice.wait(Until.findObject(by), waitTime);UiObject2 ...

  6. Vue删除数据成功后如何刷新表格数据

    文章目录 刷新表格数据的方法: 1.this.$router.go(0) 2.location.reload() 3.跳转空白页再跳回原页面 4.控制的显示隐藏(最实用的方法) 刷新表格数据的方法: ...

  7. PYTHON实现将一个文件夹下的名字满足条件的图片拷贝复制到另一个文件夹路径

    # -*- coding:utf8 -*-import os import shutil class BatchRename():'''批量重命名文件夹中的图片文件'''def __init__(se ...

  8. 1 EXECL的查找:(1)精确查找,(2)模糊查找,(3)查多个符合条件的第1个或最后1个

    目录 1 精确查找 (精确查找是模糊查找的子集) 2 模糊查找  (理论上精确查找可以找到的,模糊查找也可以) 3 精确查找,多个符合条件的内容里第1个或最后1个 (就是用模糊查找方法去查精确匹配的数 ...

  9. Oracle根据符合条件的数据循环批量更新

    --批量对符合条件的表记录进行更新 --aa代表查询出的符合条件数据的别名 --aa后的表示需要符合的条件 --loop后开始写更新操作 beginfor aa in (select a.object ...

最新文章

  1. 【NOIP2012模拟10.25】旅行
  2. 微信客服系统开发SDK使用教程- 拉取当前微信个人号列表请求(立即)
  3. js基础语法知识(数组/对象/日期)
  4. hdu5489(2015合肥网络赛F题)
  5. bzoj1013,luogu4035-[JSOI2008]球形空间产生器【高斯消元】
  6. Android中的AnimationDrawable的使用
  7. datagrid 什么时候结束编辑_小规模纳税人免税政策什么时候结束?有答复了
  8. 编程学习视频网站汇总
  9. TFT液晶屏、LCD显示屏40pin接口标准
  10. ScanContext 论文详解 - 用途:Lidar SLAM 回环检测、空间描述符
  11. 页面各手机屏幕的尺寸
  12. 手动测量变量溢出长度
  13. 这个世界没有想象中的那么好,但似乎 ...... 也没那么糟
  14. idea远程调试springboot
  15. Java、JSP基于Web的师生互动系统的设计与实现
  16. 【SDL游戏编程入门第一卷】配置SDL环境
  17. Java 拦截器重定向无限循环/重定向次数过多报错 的解决方案
  18. android 角标最新设置方案
  19. JAVA 单张牌出牌逻辑 实现斗地主
  20. 青春猪头大一新生开始学编程0.0

热门文章

  1. linux文件及文件夹权限
  2. 4.21-4.26旅行记之山城重庆(二)
  3. 霍金撰文探讨如何建造时间机器
  4. 在.net 当中如何XML序列化一个Collection
  5. Uniform Grid , KD-Tree , BVH 性能比较
  6. 7-3 二叉搜索树的结构 (30 分)
  7. Echarts定制一个地图
  8. div css将文字居中显示图片,css文字居中、图片居中、div居中解决方案
  9. 超大背包问题(二进制枚举 + 二分)
  10. 读写自旋锁 linux,boost是否像Linux一样提供读写自旋锁机制?