公式中使用的值类型错误

问题描述 投票:-1回答:1

我正在调用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
excel vba
1个回答
0
投票

试试这个:

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对象(例如xy)不能为零索引。所以i = 1 to x.Rows.Count
  • 我会避免使用GoTo语句并使用exit function代替(退出循环)
© www.soinside.com 2019 - 2024. All rights reserved.