在Excel中查找数据,Find比遍历单元格简洁了非常多,效率也会提高很多,看个例子,在A1至A10单元格内查找数据。
查找“数据7”,下面1,2的执行结果都为:
1
遍历单元格在Excel中查找数据
Sub FindData2()Dim TargetRow As IntegerFor TargetRow = 1 To 10 If Sheets("LIST").Range("A" & TargetRow) = "数据7" Then MsgBox "所查找的数据单元格为 :[A" & TargetRow & "]" Exit For End IfNextEnd Sub
2
用Find在Excel中查找数据
Sub FindData()Dim TargetRow As IntegerTargetRow = Sheets("LIST").Range("A1:A10").Find(What:="数据7").rowMsgBox "所查找的数据单元格为 :[A" & TargetRow & "]"End Sub
但是如果查询的数据不存在的时候会怎么样呢?
遍历的方法只是没有弹出对话框,而用Find则弹出了报错的对话框
添加不存在时的处理逻辑
1
遍历单元格在Excel中查找数据
Sub FindData2()Dim TargetRow As IntegerFor TargetRow = 1 To 10 If Sheets("LIST").Range("A" & TargetRow) = "数据11" Then MsgBox "所查找的数据单元格为 :[A" & TargetRow & "]" Exit Sub End IfNextMsgBox "所查找的数据单元格不存在"End Sub'如果查找到数据直接跳出Sub,如果能执行到循环结束,说明一直都没有查找到数据,则弹出不存在的提示框
2
用Find在Excel中查找数据
Sub FindData()Dim TargetRow As IntegerDim CellFind As ObjectSet CellFind = Sheets("LIST").Range("A1:A10").Find(What:="数据11")If Not CellFind Is Nothing Then TargetRow = CellFind.row MsgBox "所查找的数据单元格为 :[A" & TargetRow & "]"Else MsgBox "所查找的数据单元格不存在"End IfEnd Sub'定义了变量CellFind,没有找到数据时候 返回的CellFind 为Nothing,就可以作一个判断了。
联系客服