vba find 查找出来的数据不是唯一,弹出错误窗口并退出?

比如我要查找唯一值,但表格中有两个张三,但身份证号不一样,这样我在填写资料的时候就可能把信息填错了,所以,我在查找张三的时候就需要弹出窗口提示,并退出查找,vba怎么编写

嗨,非常感谢您向我咨询关于VBA的问题。

根据您的描述,您在使用VBA的Find函数时遇到了一些问题。您提到,Find函数查找到的数据不唯一,导致出现错误窗口并退出。这可能是因为您的代码中缺少了一些错误处理的逻辑。

为了解决这个问题,您可以在调用Find函数之前添加一些判断逻辑,以确保查找到的数据是唯一的。例如,您可以在执行查找之前使用CountIf函数来计算符合条件的单元格数目,如果数目大于1,则可以弹出错误窗口并退出。您也可以使用FindNext函数来查找下一个匹配项,以确保找到所有符合条件的单元格。

另外,您还可以考虑使用On Error语句来处理错误。通过在代码中添加On Error语句,您可以在发生错误时执行特定的操作,而不是直接退出程序。例如,您可以在发生错误时弹出一个自定义的错误窗口,并提示用户更改查找条件。

希望这些提示对您有所帮助。如果您需要进一步的帮助,请随时联系我。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-02-21
Sub ss()
Dim St$, AddrF$, Rng As Range
St = "张三"
Set Rng = Cells.Find(St)
If Not Rng Is Nothing Then
AddrF = Rng.Address
If Cells.FindNext(Rng).Address = AddrF Then
'只有一个
Else
MsgBox "找到但是不唯一"
End If
Else
MsgBox "没有找到"
End If
End Sub
基本框架就这样,需要自行拓展和限制查找位置等自便。
第2个回答  2023-02-20
建议你再使用 FindNext 查找一下是不是还有其它的值。