我需要根据具有特定文本的单元格的位置来获取范围。以下代码行就是这样做的。
Sub test()
Dim rng As Range
Dim ws2 As Worksheet
Set ws2 = Sheets("Sheet2")
Set rng = ws2.Cells.Find("asd", LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True).Offset(3)
rng.Select
End Sub
问题在于,有时由于某种未知原因,Range.Find只是不想工作并发出运行时错误91。 当我重新启动工作簿时,有时它仍然无法工作,有时它将被修复。 我不知道为什么会这样。我甚至不能尝试重现错误。 我怀疑这是因为我正在寻找的文本的单元格是一个合并的单元格。这可能是原因吗? 它仍然无法解释为什么有时它会起作用,有时它也不会。
我正在使用。选择仅测试并查看它是否有效。
问题:如何确保Range.Find每次都有效? (假设带有文本的单元格将始终存在)
答案 0 :(得分:2)
您可以测试Range是否为Nothing。范围无效时,表示没有找到任何内容。而你无法选择任何东西。
Sub test()
Dim rng As Range
Dim ws2 As Worksheet
Set ws2 = Sheets("Sheet2")
Set rng = ws2.Cells.Find("asd", LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
If Not rng Is Nothing Then
rng.Offset(3).Select
else
MsgBox("Nothing Found")
End if
End Sub