2015-03-25 4 views
3

Я пытаюсь найти клеточную линию, содержащую слово «ОК», это мой код:Найти адрес ячейки, содержащей формулу, используя текстовое значение в ячейке

Dim findValue As Long 
findValue = Sheets("STOCKS").Range("E:E").Find("ok").Row 

Проблема заключается в том, что ячейка, содержащая слово «ok», например E5, заполняется формулой, принимающей значение другой ячейки на другом листе. Таким образом, я получаю следующее сообщение об ошибке:

execution error 91 : object variable or bloc variable with not defined
(I have translated the message from French to English.)

Я думаю, это потому, что ячейка содержит формулу, а не реальную стоимость.

ответ

4

Если вы действительно думаете, что формула является проблема, которую вы можете добавить

lookin:=xlValues 

в качестве параметра для вашей функции найти так, что он читает:

findValue = Sheets("STOCKS").Range("E:E").Find("ok", lookin:=xlValues).Row 

Вы также получите эту ошибку, если ценность, которую вы ищете, не найдена. Вы можете проверить это с помощью этого кода.

Dim findValue As Long 
Dim r As Range 

Set r = Sheets("STOCKS").Range("E:E").Find("ok", LookIn:=xlValues) 

If r Is Nothing Then 
    MsgBox "Not found" 
    findvalue = -1 
Else 
    findvalue = r.Row 
End If 
+0

спасибо, это именно то, что я искал, параметр поиска идеально подходит. – user2443476

Смежные вопросы