分享

VBA基础入门(42)Find查找到不存在的数据出错怎么办?

 asaser 2022-03-28

图片


图片

在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,就可以作一个判断了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多