VBA中find的一些使用方法
用excel处理数据的时候,无论是使用VBA还是函数,查找和引用都是两大主要的工作,VBA中的find系列的方法(find、findnext、Range.FindPrevious)返回range对象,可以同时实现查找和引用,因此非常有用,下面列举一些常见的find的用法:
Sub Find1() '在某列查找
Dim k
k = Range("A:A").Find("A").Row
MsgBox k
End Sub
==================================================
Sub Find11() '在多列查找
Dim k
k = Range("A:B").Find("BCD").Row
MsgBox k
End Sub
==================================================
Sub Find2() '查找的起始位置
Dim k
k = Range("A:B").Find("A", AFTER:=Range("A5")).Row
MsgBox k
End Sub
==================================================
Sub Find3() '在值中查找
Dim k
k = Range("B:B").Find("SE", LookIn:=xlValues).Row
MsgBox k
End Sub
==================================================
Sub Find31() '在公式中查找
Dim k
k = Range("B:B").Find("C2", LookIn:=xlFormulas).Address
MsgBox k
End Sub
==================================================
Sub Find32() '在备注中查找
Dim k
k = Range("B:C").Find("AB", LookIn:=xlComments).Address
MsgBox k
End Sub
==================================================
Sub Find41() '按模糊查找
Dim k
k = Range("B:C").Find("A", LookIn:=xlValues, LOOKAT:=xlPart).Address
MsgBox k
End Sub
==================================================
Sub Find42() '匹配查找
Dim k
k = Range("B:C").Find("A", LookIn:=xlValues, LOOKAT:=xlWhole).Address
MsgBox k
End Sub
==================================================
Sub Find5() '按先行后列的方式查找
Dim k
k = Range("A:B").Find("AB", LookIn:=xlValues, LOOKAT:=xlWhole, SEARCHORDER:=xlByRows).Address
MsgBox k
End Sub
==================================================
Sub Find51() '按先列后行的方式查找
Dim k
k = Range("A:B").Find("AB", LookIn:=xlValues, LOOKAT:=xlWhole, SEARCHORDER:=xlByColumns).Address
MsgBox k
End Sub
==================================================
Sub Find6() '查找方向(从后向前)
Dim k
k = Range("A:A").Find("A", , xlValues, xlWhole, xlByColumns, xlPrevious).Address
MsgBox k
End Sub
==================================================
Sub Find61() '查找方向(从前向后)
Dim k
k = Range("A:A").Find("A", , xlValues, xlWhole, xlByColumns, xlNext).Address
MsgBox k
End Sub
==================================================
Sub Find7() '字母大小写
Dim k
k = Range("a:b").Find("a", , xlValues, xlWhole, xlByColumns, xlNext, False).Address
MsgBox k
End Sub
==================================================
Sub f7() '查找不到的情况
Dim MRG As Range
Set MRG = Range("A:A").Find("D")
If MRG Is Nothing Then
MsgBox "查找不到字母D"
Else
MsgBox "查找成功,单元格地址为:" & MRG.Address
End If
End Sub
==================================================
Sub f8() '二次查找
Dim MRG As Range
Set MRG = Range("A:A").Find("A")
Set mrg1 = Range("A:A").FindNext(MRG)
MsgBox mrg1.Address
End Sub
==================================================
Sub F9() '区域查找
Dim MRG As Range, AAA As String
Set MRG = Range("A1:F16").Find("A")
AAA = MRG.Address
Do
Set MRG = Range("A1:F16").FindNext(MRG)
MsgBox MRG.Address
Loop Until MRG.Address = AAAEnd Sub
==================================================
Sub Myfind()
Dim iRange As Range, iFined As Range
Dim iStr, iAddress As String, N As Integer
'以上是定义使用到的变量
Set iRange = Range("A2:A100") '给irange变量赋值为A2:A100区域
iStr = Range("A1").Value '给要查找的字符串变量赋值为A1单元格的值
Set iFined = iRange.Find(iStr, lookat:=xlWhole) '在irange区域内查找等于变量istr的单元格,并赋值给你ifined变量,如果要查找包含istr变量的单元格,更改参数lookat:=xlPart
If iFined Is Nothing Then '判断 ifined变量是空
MsgBox "在" & iRange.Address(0, 0) & "区域里,没有找到内容等于" & iStr & "的单元格!"
Exit Sub
Else
iAddress = iFined.Address(0, 0)
Do
N = N + 1
Set iFined = iRange.FindNext(iFined) '继续向下查找等于istr变量的单元格
Loop While Not iFined Is Nothing And iAddress <> iFined.Address(0, 0) 'do循环的条件为ifined变量非空,并且ifined变量的单元格地址不等于找到的第一个单元格地址
End If
MsgBox "在" & iRange.Address(0, 0) & "区域里,共找到内容等于" & iStr & "的单元格有:" & N & "个!"
End Sub
VBA中find的一些使用方法的更多相关文章
- Excel VBA中写SQL,这些问题的方法你一定要牢记
小爬之前的文章 [Excel VBA中写SQL,这些问题你一定为此头痛过]中详细讲诉了一些常见的VBA 中使用SQL遇到的问题,这里再补充两个常见的问题场景及对应的解决方案,希望你们看了后能够思路开阔 ...
- VB类模块中属性的参数——VBA中Range对象的Value属性和Value2属性的一点区别
在VB中,属性是可以有参数的,而VBA中属性使用参数非常常见.比如最常用的:Worksheet.Range("A1:A10") VB的语法,使用参数的不一定是方法,也有可能是属性 ...
- 在VBA中使用Windows API
VBA是一种强大的编程语言,可用于自定义Microsoft Office解决方案.通过使用VBA处理一个或多个Office应用程序对象模型,可以容易地修改Office应用程序的功能或者能够使两个或多个 ...
- VBA中使用JavaScript脚本语言解析JSON数据
JSON:JavaScript 对象表示法(JavaScript Object Notation) 和xml相似,都是文本形式(保存在文本文件中或字符串等形式),比如: jsstr = {" ...
- VBA中操作XML
OFFICE2007之后使用了OpenXml标准(伟大的改变),定制文本级的Ribbon可以通过修改压缩包内的xml文件来实现. 先学习一下VBA中操作XML的方法 先引用Microsoft XML ...
- VBA中的FileSystemObject对象(FSO)和文本流
对FileSystemObject一直略有耳闻,VBA爱好者常常简称为FSO对象. 在Scripting类库中有三个可以直接使用NEW关键字实例化的类,第一个就是常用的字典,第三个是FSO. 一.FS ...
- VBA中自定义类和事件的(伪)注册
想了解一下VBA中自定义类和事件,以及注册事件处理程序的方法. 折腾了大半天,觉得这样的方式实在称不上“注册”,所以加一个“伪”字.纯粹是瞎试,原理也还没有摸透.先留着,有时间再接着摸. 做以下尝试: ...
- VBA中四种自动运行的宏以及模块的含义
在Excel的“标准模块”中可以创建4种自动运行的宏,它们分别是Auto_Open(打开工作 簿时自动运行), Auto_Close, Auto_Activate, Auto_Deactivate. ...
- 处理Selection对象和Range对象——Word VBA中重要的两个对象
处理Selection对象和Range对象——Word VBA中重要的两个对象 Word 开发人员参考Selection 对象代表窗口或窗格中的当前所选内容.所选内容代表文档中选定(或突出显示)的区域 ...
随机推荐
- static变量在php和java中的生命周期
1. java的static变量伴随着java虚拟机的退出而消亡,java虚拟机运行期间,static变量一直存在 2. php的static变量只针对一次请求(一次php文件的执行),php文件执行 ...
- strtr介绍
strtr — 转换指定字符 string strtr ( string $str , string $from , string $to ) string strtr ( string $str , ...
- 手机开机画面制作工具(LogoBuilder)
手机开机画面制作工具(LogoBuilder) 本人想在自己的设备中采用其他设备上开机的logo,首先需要此设备上的logo.bin,然后用LogoBuilder解压出来,具体步骤如下: 1. ...
- CodeForces 152C Pocket Book
Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Submit Status Prac ...
- ASP.NET API盘点
1.控制只返回JSON一种数据 public class JsonContentNegotiator : IContentNegotiator { private readonly JsonMedia ...
- Margin and Padding in Windows Forms Controls
https://msdn.microsoft.com/en-us/library/ms229627.aspx Margin and Padding Precise placement of contr ...
- [转]Linux下的暴力密码破解工具Hydra详解
摘自:http://linzhibin824.blog.163.com/blog/static/735577102013144223127/ 这款暴力密码破解工具相当强大,支持几乎所有协议的在线密码破 ...
- BerkeleyDB 多索引查询
由于性能原因,我们打算将关系型数据库转移到内存数据库中:在内存数据库产品的选型中,我们确定的候选对象有Redis和Berkeley DB: Redis查询效率不错,并且支持丰富的数据存储结构,但不支持 ...
- ubuntu_ar命令(操作 ?.deb文件)
1. -x 从自备存文件中取出成员文件. 1.1. “root@zc33-desktop:/home# ar -x libstdc++6_4.7.2-5_i386.deb” 这样的话,它会把 lib ...
- js获取select字段值的方法
var index = obj.selectedIndex; // 选中索引 var value = obj.options[index].value; // 选中值 var schoolName = ...