Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1766|回复: 2

[已解决]Find函数在找不存在值的时候,怎么避免出错

[复制链接]
发表于 2021-12-10 12:16 | 显示全部楼层 |阅读模式
问题描述:
    vba使用find函数找某值,如果值在查找范围里面有,会输出对应结果;但是如果找不到某值,就会弹窗出错。
想要结果:
   在不使用on Error Resume Next语句的情况下,运行后面代码,并且体现find最后输出的结果是一个错误值
   比如 a = Range("a:a").Find("D").Address,而D不存在,让a输出结果为一个错误值

请各位老师帮忙解惑,万分感谢,祝大家顺心!

附件为例题:

Sub FIND报错()
'  On Error Resume Next
    Dim a
    '1)存在"A"的情况没问题
'    a = Range("a:a").Find("a").Address
'    MsgBox a
    '2)不存在的时候,不能运行下一条
    a = Range("a:a").Find("D").Address
    MsgBox a
End Sub


最佳答案
2021-12-10 12:38
Option Explicit
Sub demo()
   Dim r As Range, a
   Set r = Range("a:a").Find("a")
   If r Is Nothing Then a = "Not Found" Else a = r.Address
   MsgBox a
   Set r = Range("a:a").Find("d")
   If r Is Nothing Then a = "Not Found" Else a = r.Address
   MsgBox a
End Sub

祝順心,南無阿彌陀佛!

1639109481(1).jpg

find差找不到弹框怎么解决.rar

9.66 KB, 下载次数: 1

发表于 2021-12-10 12:38 | 显示全部楼层    本楼为最佳答案   
Option Explicit
Sub demo()
   Dim r As Range, a
   Set r = Range("a:a").Find("a")
   If r Is Nothing Then a = "Not Found" Else a = r.Address
   MsgBox a
   Set r = Range("a:a").Find("d")
   If r Is Nothing Then a = "Not Found" Else a = r.Address
   MsgBox a
End Sub

祝順心,南無阿彌陀佛!

回复

使用道具 举报

 楼主| 发表于 2021-12-10 14:08 | 显示全部楼层
cutecpu 发表于 2021-12-10 12:38
Option Explicit
Sub demo()
   Dim r As Range, a

可以,谢谢。


评分

参与人数 1学分 +2 收起 理由
cutecpu + 2 不客氣。祝順心,南無阿彌陀佛!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-28 04:49 , Processed in 0.231867 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表