相关知识点:
Range.Find 方法,在该Range类对象代表的单元格区域中,搜索含有指定内容的单元格。Find只返回第一个找到的结果,例找374这个数字:Range(“B2,G14”).Find(374),返回Range(”C4”)
Range.Find(What,After,LookIn,Lookat,SearchOrder,SeachDirection,MatchCase,MatchByte,SeachFormat)
9个参数:What 必填,后面8个参数,定义为可选参数(提高18回)。
What:含义,需要查找的内容;特点,为变体类型,可以接受数字、字符串、日期等各种VBA数据类型,支持通配符(正则表达式,?*-),从而实现模糊查找。(25),(”熊猫”),(#3/18/2019#)
例1 找出“熊猫”单元格(基础方法)
Sub findnum()
Dim i&,j&,d as date
d=time()
For i=1 To 100000
For j=1 To 50
If cells(i,j)=”熊猫” Then
cells(i,j).interior.color=vbred
cells(i,j).select
Goto found
End If
next j
next i
Found:
msgbox”共计用时” & datediff(“s”,d,time()) & “秒” ‘返回13秒
End Sub
例2 找熊猫优化例1,用二维数组(提高篇14回)
Sub findnum1()
Dim i&,j&,d as date,,arr()
d=time()
arr()=range((1,1),(100000,50))
For i=1 To 100000
For j=1 To 50
If arr(i,j)=”熊猫” Then
cells(i,j).interior.color=vbred
cells(i,j).select
Goto Found
End If
next j
next i
Found:
msgbox”共计用时” & datediff(“s”,d,time()) & “秒” ‘返回2秒
End Sub
例3 找熊猫优化例2,用Fiund()函数,代码简单,如果没有熊猫,就会出错(Nothing)
Sub findnum()
Dim d as date, r as range
d=Time()
set r=range(cells(1,1),cells(100000,50)).Find(“熊猫”)
If Not r Is Nothing Then ‘如果r不是Nothing,即r is Nothing 为 False,则Not r is Nothing
‘为True,进入分枝
r.interior.color=vbred
r.select
msgbox”共计用时” & Datediff(“s”,d,time()) & “秒” ‘返回2秒
Else
msgbox”没找到”
End If
End Sub