错误9由于.find

时间:2014-04-07 21:11:56

标签: excel vba excel-vba

您好我想找到一个包含变量" AI"然后选择行。搜索结果可能是空的,如果是这种情况,它应该写一个文本。

这是我目前的代码

Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Dim mf As Object
Dim RZ As String
Dim AI As String


' The variable KeyCells contains the cells that will
' cause an alert when they are changed.
Set KeyCells = Range("B3")

If Not Application.Intersect(KeyCells, Range(Target.Address)) _
       Is Nothing Then

    ' Place your code here.

AI = Range("B3").Value
Sheets("DATA").Select
Sheets("DATA").Columns("C:C").Select

Set mf = Sheets("DATA").Columns("C:C").Find(What:=AI, LookAt:=Whole, SearchOrder:=xlByRows, SearchDirection:= _
    xlNext, SearchFormat:=False)
    If Not mf Is Nothing Then

    RFound = mf.Row
    Sheets("DATA").Cells(RFound, 1).Select
    RZ = Sheets("DATA").Cells(RFound, 2).Value2
    Sheets("Búsqueda").Select
    Cells(3, 6).Value = RZ
    Else
    Cells(3, 6).Value = "RAZON SOCIAL"

    End If
End If
End Sub

问题是

Set mf = Sheets("DATA").Columns("C:C").Find(What:=AI, LookAt:=Whole,      SearchOrder:=xlByRows, SearchDirection:= _
    xlNext, SearchFormat:=False)

返回"错误9超出范围"

1 个答案:

答案 0 :(得分:0)

LookAt:=Whole

......应该是:

LookAt:=xlWhole 

应该转到@simoco,因为他提供了答案。

我不确定正确的礼节(甚至在检查Meta之后)。

  • 理想情况下,simoco应将其评论转换为正式答案(并且应该被接受)。他当然应该信用。
  • 与此同时,问题应该得到答案,所以我填写了。如果我的这个回应被接受,那将通过澄清决议来帮助社区。

我可以投票给关闭,但这似乎不仅仅是一个错字。这似乎是一个高质量的问题。