excel搜索工作表指定列范围中的数据替换其复制到另一个工作表中

时间:2023-04-28 10:09:54 

这里的应用场景如下:

“ 在工作表 Sheet1 中存储着数据,现在想要在该工作表的第O 列至第T 列中搜索指定的数据,如果发现,则将数据所在行复制到工作表Sheet2 中。

用户在一个一级中输入要搜索的数据值,然后自动将满足前面条件的所有行复制到工作表Sheet2 中。”

首先,使用用户预先设计的输入第一步,如下图 1 所示。

excel搜索工作表指定列范围中的数据替换其复制到另一个工作表中

图 1

在该用户常规模块中编写代码:

私人Sub cmdOK_Click()

昏暗的工作簿

调光行

昏暗搜索范围

昏暗的发现

Dim rngFoundCells作为范围

Dim rngFoundCell作为范围

昏暗的行

Application.ScreenUpdating = False

‘ 赋值工作表Sheet1

设置wks =工作表(“ Sheet1”)

有星期

‘ 工作表中的最后一个数据行

lngRow = .Range(“ A”&Rows.Count).End(xlUp).Row

‘ 被查找的单元格区域

设置rngSearch = .Range(“ O2:T”&lngRow)

“ 查找的数据文本值

‘ 由用户在文本目录输入

FindWhat =“ *”&Me.txtSearch.Text和“ *”

‘ 调用FindAll 函数查找数据值

‘ 存储满足条件的所有单元格

设置rngFoundCells = FindAll(SearchRange:= rngSearch,_

FindWhat:= FindWhat,_

LookIn:= xlValues,_

LookAt:= xlWhole,_

SearchOrder:= xlByColumns,_

MatchCase:=假,_

BeginsWith:= vbNullString,_

EndsWith:= vbNullString,_

BeginEndCompare:= vbTextCompare)

‘ 如果没有找到则称为消息

如果rngFoundCells什么都没有,那么

转到SendInfo

万一

‘ 清空工作表Sheet2

Sheets(“ Sheet2”)。Cells.Clear

‘ 获取数据单元格所在的行并复制到工作表Sheet2

对于rngFoundCells中的每个rngFoundCell

lngCurRow = Val(Mid(rngFoundCell.Address,4,Len(rngFoundCell.Address)))

范围(“ A”&lngCurRow和“:Z”&lngCurRow)。

Sheets(“ Sheet2”)。Cells(Rows.Count,1).End(xlUp).Offset(1)

下一个rngFoundCell

结束于

Application.ScreenUpdating = True

卸载我

退出子

SendInfo:

MsgBox“ 没有找到数据 ”,,“ 查找 ”

结束子

代码中使用的 FindAll 函数代码如下:

‘ 自定义函数

‘ 获取满足条件的所有单元格

函数FindAll(SearchRange AsRange,_

FindWhat作为变体,_

可选的LookIn为XlFindLookIn = xlValues,_

XlLookAt = xlWhole的可选LookAt,_

可选SearchOrder AsXlSearchOrder = xlByRows,_

可选MatchCase为布尔值= False,_

可选的BeginsWith As String = vbNullString,_

可选的EndsWith As String = vbNullString,_

可选的BeginEndCompare AsVbCompareMethod = vbTextCompare)作为范围

昏暗FoundCell作为范围

昏暗的FirstFound作为范围

DimLastCell作为范围

昏暗ResultRange作为范围

昏暗的XLookAt作为XlLookAt

暗含为布尔

Dim CompMode作为VbCompareMethod

昏暗区域作为范围

昏暗的MaxRow只要长

昏暗的MaxCol只要

昏暗的BeginB为布尔

将EndB昏暗为布尔值

CompMode = BeginEndCompare

如果BeginsWith <> vbNullString或EndsWith <> vbNullString然后

XLookAt = xlPart

其他

XLookAt = LookAt

万一

对于SearchRange.Areas中的每个区域

有面积

如果.Cells(.Cells.Count).Row> MaxRow然后

MaxRow = .Cells(.Cells.Count).Row

万一

如果.Cells(.Cells.Count).Column> MaxCol然后

MaxCol = .Cells(.Cells.Count).Column

万一

结束于

下一个区域

设置LastCell = SearchRange.Worksheet.Cells(MaxRow,MaxCol)

出错时转到0

设置FoundCell = SearchRange.Find(What:= FindWhat,_

之后:= LastCell,_

LookIn:= LookIn,_

LookAt:= XLookAt,_

SearchOrder:= SearchOrder,_

MatchCase:= MatchCase)

如果Not FoundCell一无所有

设置FirstFound = FoundCell

做到错误

包含=错误

如果BeginsWith = vbNullString AndEndsWith = vbNullString然后

包含=正确

其他

如果BeginsWith <> vbNullString然后

IfStrComp(Left(FoundCell.Text,Len(BeginsWith)),BeginsWith,BeginEndCompare)= 0然后

包含=正确

万一

万一

如果EndsWith <> vbNullString然后

如果StrComp(Right(FoundCell.Text,Len(EndsWith)),EndsWith,BeginEndCompare)= 0

包含=正确

万一

万一

万一

如果Include = True,则

如果ResultRange无效,则

设置ResultRange = FoundCell

其他

设置ResultRange = Application.Union(ResultRange,FoundCell)

万一

万一

设置FoundCell = SearchRange.FindNext(之后:= FoundCell)

如果(FoundCell什么都没有)然后

退出做

万一

如果(FoundCell.Address = FirstFound.Address)然后

退出做

万一

循环

万一

设置FindAll = ResultRange

结束功能

这是一个通用函数,直接拿来使用就行了,可用于在指定的区域查找并返回满足条件的所有单元格。

标签:excel图表制作,excel常用函数,excel数据透视表,Excel教程
0
投稿

猜你喜欢

  • 苹果电脑重装系统要多少钱?

    2022-10-24 07:08:26
  • word2013表格画笔使用技巧

    2023-09-20 05:27:20
  • 开心手机恢复大师怎么找回微信已删除好友?

    2022-08-12 19:26:18
  • Win10 1909 LSP出现问题怎么办?Win10LSP错误修补教程

    2023-06-30 11:28:20
  • Win7如何完全卸载sql2005?Win7删除sql2005的技巧

    2023-04-24 01:38:52
  • Win10 1909怎么设置虚拟内存?Win10 1909虚拟内存设置方法简述

    2023-09-10 08:39:19
  • Word 2007技巧:拖动边框调整表格尺寸

    2023-12-14 03:02:41
  • 怎么将Excel2003单元格行列数据转换

    2023-04-07 19:30:32
  • Excel中如何利用查找功能额可以快速统计男生数量和女生数量

    2023-11-10 02:36:05
  • Win10让文件夹图标显示指定文字的技巧

    2022-02-13 09:16:32
  • 火绒怎么修复网络?火绒安全软件断网修复功能使用方法简述

    2023-11-21 12:31:23
  • ​wps文档如何设置装订线宽

    2023-02-19 00:56:50
  • 点击工具栏的数据然后选择数据有效性 Excel2010 2.在数据有效性里我们可以将有效性条件修改为自定义接着在公示栏输入=LEN(F2)《=5 Excel2010 3.接着点击出错警告

    2023-01-05 15:42:54
  • Win7系统电脑闹钟的设置方法

    2023-07-21 04:03:49
  • 会“唱歌”的ppt2007实现教程

    2022-11-23 16:27:22
  • excel 动态图表这么牛,老板看了都忍不住点赞

    2022-06-10 05:08:47
  • Win11打游戏经常弹出桌面怎么办?Win11打游戏经常弹出桌面的解决方法

    2022-07-25 09:02:03
  • command line option syntax error解决方法

    2022-05-31 10:42:29
  • 如何调整wps文本方向

    2023-01-12 19:37:21
  • 实例讲解使用Win10计算器计算反三角函数的方法

    2023-11-15 11:57:59
  • asp之家 电脑教程 m.aspxhome.com