Значение, используемое в формуле, имеет неправильный тип - PullRequest
0 голосов
/ 20 апреля 2019

Я вызываю функцию UDF.Он сообщает об ошибке #value, которая говорит о том, что используемое в формуле значение имеет неправильный тип данных.Пожалуйста, найдите ниже код

Function pattern(a As Double, x As Range, y As Range) As Double
    Dim i As Integer, x1 As Double, x2 As Double, y1 As Double, y2 As Double

    For i = 0 To x.RowCount
        If x(i) > a Then GoTo Line1
    Next i

    Line1:
    x1 = x(i - 1)
    x2 = x(i)
    y1 = y(i - 1)
    y2 = y(i)

    pattern = y1 + ((y2 - y1) * (a - x1) / (x2 - x1)) 
End Function

1 Ответ

0 голосов
/ 20 апреля 2019

Попробуйте это:

Function Pattern(a As Double, x As Range, y As Range) As Double
    Dim i As Integer, x1 As Double, x2 As Double, y1 As Double, y2 As Double

    For i = 1 To x.Rows.Count
        If x(i) > a Then
            x1 = x(i - 1)
            x2 = x(i)
            y1 = y(i - 1)
            y2 = y(i)

            Pattern = y1 + ((y2 - y1) * (a - x1) / (x2 - x1))
            Exit Function
        End If
    Next i
End Function
  • Объект Range (например, x, y) не может быть проиндексирован с нуля. Итак i = 1 to x.Rows.Count
  • Я бы избегал оператора GoTo и использовал бы вместо него exit function (для выхода из цикла)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...