Использование метода .find в пользовательской функции - PullRequest
1 голос
/ 24 июня 2019

Я хочу создать функцию, которая принимает две входные переменные InputVal, которые всегда будут числовыми, и RefCell, которые всегда будут словом.Затем функция должна использовать слово в RefCell для поиска определенной ячейки в другом листе рабочей книги.Затем переместите четыре пробела вправо от «найденной ячейки» и возьмите то, что находится внутри (также всегда числовое), умножьте его на InputVal и верните результат.

Function FindAndCalc(InputVal As Range, RefCell As Range)

    Dim FindCell As Range, NewCell As Range

    FindCell = Worksheets("Sheet1").Cells.Find(what:=RefCell.Value)
    NewCell = Worksheets("Sheet1").FindCell.Offset(0, 4)

    FindAndCalc = NewCell.Value * InputVal.Value

End Function

В настоящее время он просто возвращает меняошибка «#VALUE!», в то время как она должна возвращать числовое значение.

1 Ответ

3 голосов
/ 24 июня 2019

Возможно, вам не хватало некоторых Set х .. также просто добавили немного логики

Function FindAndCalc(InputVal As Range, RefCell As Range)

    Dim FindCell As Range, NewCell As Range

    Set FindCell = Worksheets("Sheet1").Cells.Find(RefCell.Value)
    If Not FindCell is Nothing Then
        Set NewCell = FindCell.Offset(0, 4)
    End If

    FindAndCalc = NewCell.Value * InputVal.Value

End Function
...