在vba中使用find方法

在vba中使用find方法

ID:11940137

大小:63.00 KB

页数:9页

时间:2018-07-15

在vba中使用find方法_第1页
在vba中使用find方法_第2页
在vba中使用find方法_第3页
在vba中使用find方法_第4页
在vba中使用find方法_第5页
在vba中使用find方法_第6页
在vba中使用find方法_第7页
在vba中使用find方法_第8页
在vba中使用find方法_第9页
资源描述:

《在vba中使用find方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、在VBA中使用Find方法使用VBA在工作表或单元格区域中查找某项数据时,我们通常使用For…Next循环,这在小范围中使用还可以,但应用在大量数据中查找时,会耗费较多时间。而在Excel工作表中,通常使用菜单“编辑>>查找”命令或按Ctrl+F组合键,在“查找和替换”对话框中来迅速查找所需的数据。在VBA中,我们也能使用这种方法,这在下面的内容中介绍。为什么要使用Find方法呢?最主要的原因是查找的速度。如果要使用VBA代码在包含大量数据的单元格区域中查找某项数据,应该使用Find方法。例如,在工作表Sheet1的单元格IV65536中输入

2、fanjy,然后运行下面的代码:SubQuickSearch()   IfNotSheet1.Cells.Find("fanjy")IsNothingThenMsgBox"已找到fanjy!"EndSub再试试下面的代码:SubSlowSearch()   DimRAsRange   ForEachRInSheet1.Cells       IfR.Value="fanjy"ThenMsgBox"已找到fanjy!"   NextREndSub比较一下两段代码的速度,可知第一段代码运行很快,而第二段代码却要执行相当长的一段时间。关于Find方

3、法的基本使用方法请见《关于查找方法(Find方法)的应用》。下面介绍一些扩展Find方法的技术。我们能够使用Find方法查找单元格区域的数据,但是没有一个方法能够返回一个Range对象,该对象引用了含有所查找数据的所有单元格,下面提供了一个FindAll函数来实现此功能。此外,Find方法的另一个不足之处是不支持通配符字符串,下面也提供了一个WildCardMatchCells函数,返回一个Range对象,引用了与所提供的通配符字符串相匹配的单元格。通配符字符串可以是有效使用在Like运算符中的任何字符串,关于Like运算符的介绍请见《关于L

4、ike运算符的使用》一文。---------------------FindAll函数这个程序在参数SearchRange所代表的区域中查找所有含有参数FindWhat代表的值的单元格,SearchRange参数必须是一个单独的单元格区域对象,FindWhat参数是想要查找的值,其它参数是可选的且与Find方法的参数意思相同。FindAll函数的代码如下:OptionCompareTextFunctionFindAll(SearchRangeAsRange,FindWhatAsVariant,_   OptionalLookInAsXlFin

5、dLookIn=xlValues,OptionalLookAtAsXlLookAt=xlWhole,_   OptionalSearchOrderAsXlSearchOrder=xlByRows,_   OptionalMatchCaseAsBoolean=False)AsRange'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''返回SearchRange区域中含有FindWhat所代表的值的所有单元格组成的R

6、ange对象'其参数与Find方法的参数相同'如果没有找到单元格,将返回Nothing.'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' DimFoundCellAsRange DimFoundCellsAsRange DimLastCellAsRange DimFirstAddrAsString WithSearchRange   SetLastCell=.Cells(.Cells.Count) EndWith

7、 SetFoundCell=SearchRange.Find(what:=FindWhat,after:=LastCell,_   LookIn:=LookIn,LookAt:=LookAt,SearchOrder:=SearchOrder,MatchCase:=MatchCase) IfNotFoundCellIsNothingThen   SetFoundCells=FoundCell   FirstAddr=FoundCell.Address   Do     SetFoundCells=Application.Union(FoundC

8、ells,FoundCell)     SetFoundCell=SearchRange.FindNext(after:=FoundCell)   LoopUnti

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。