excel搜索工作表指定列范围中的数据替换其复制到另一个工作表中
发布时间:2023-04-28 10:09:54
这里的应用场景如下:
“ 在工作表 Sheet1 中存储着数据,现在想要在该工作表的第O 列至第T 列中搜索指定的数据,如果发现,则将数据所在行复制到工作表Sheet2 中。
用户在一个一级中输入要搜索的数据值,然后自动将满足前面条件的所有行复制到工作表Sheet2 中。”
首先,使用用户预先设计的输入第一步,如下图 1 所示。
图 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
结束功能
这是一个通用函数,直接拿来使用就行了,可用于在指定的区域查找并返回满足条件的所有单元格。


猜你喜欢
- word段落整体移动的方法:一,鼠标操作步骤一:选定要进行移动操作的段落(包括段落标记),将光标移动到选定段落中,按下鼠标左键不
- 我们都知道2010年南非世界杯赛于2010年6月11日至7月11日举行。我们将DATE函数和TODAY函数配合使用,便可计算出离世界杯结束倒
- 很多win7的用户在使用ie浏览器的时候都遇到过这种提示“由于无法验证发布者,windows阻止控件安装”导致自己无法继续安装,那这个问题应
- 月11日消息:微软昨天推送了Windows 10 1903版本的7月份更新补丁,另外微软也没忘记推送Windows 10 Mobile 15
- 新版edge浏览器没有internet选项怎么办?在最新的win10版本中,很多用户发现自己系统中的edge浏览器想要使用internet选
- WPS2012暂时不支持工具栏自定义,后续版本会改进的。 WPS (Word Processing System)
- 如何将AIrPods连接到Mac计算机呢,其实很容易,你可以通过下面的方法将AIrPods连接到Mac计算机。1.您可以连接 AIrPods
- 成对条形图(或旋风图)常用于对比两类事物在不同特征项目的数据情况,例如美国总统选举中不同地区投支持票和反对票的比例情况,足球比赛中主队和客队
- 网上经常能搜到一些教程里有好多种方法,对于初学者来说有点蒙,到底用哪个方法好呢?所以这篇教程里小编只给大家介绍一种最简单,最容易记的方法,分
- 一、什么是hosts文件电脑系统的hosts文件一般都存储在C盘,因为电脑C盘一般都是安装系统文件的盘符。hosts文件作用就是
- 有很多网友想了解关于石大师u盘装系统的教程。如果不知道如何操作的话,那就接着往下看。u盘装系统所需的工具,就需要一个u盘、石大师u盘装机工具
- 电脑遇到故障后使用360一键重装系统的用户很多,但是大家都担心重装以后自己的d盘中的文件还在不在,今天就给你们带来了360一键重装系统后d盘
- 最近微软可谓是大手笔针对所有Windows系统都进行了更新,那么许多还没有更新的小伙伴都在问,这次微软又整什么幺蛾子,都进行了哪些更新?下面
- 一些Word文档或被开启的网页等都会被载入到内存,而为了节省空间,windows会把不同的文件放到系统的页面文件中。微软提供了一种功能在关闭
- 在Excel中录入好数据以后经常需要打印,其中有可能需要把分页线去除,具体该如何去除呢?接下来是小编为大家带来的excel中去除分页线的方法
- 新的iOS不仅为整个系统带来了新的界面,也让Siri拥有了全新的界面。而且如果你听厌倦了Siri的女声的话,这一次耳朵也有福了:官方让Sir
- 文件资源管理器是Windows提供的资源管理的工具,我们可以通过它来查看本台电脑的所有资源。随着Win10系统的发布,很多一部分人都升级Wi
- 下面为大家介绍下Windows Server 2008与2012建立林信任:建立DNS辅助区域、建立林信任关系,不会的朋友可以参考下哈当公司
- Nvcpl.dll则是NVIDIA显示卡中一个十分重要的dll文件,但最近有windows XP系统用户反映,电脑开机时出现Nvcpl错误弹
- 脱机工作就是指,IE浏览器在不上网的情况下,查看原来看过的网页,当你使用脱机工作时,IE将不在网上重新下载网页,而是从本地硬盘上原来已下载的