我正在调用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
试试这个:
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
代替(退出循环)