这个函数(有附件)为什么选择列可以调用(=插值(A1:A13,B1:B12,4.5)),而选择行却不能用(=插值(E1:M1,E2:M2,4.5))?哪们高手帮我改改啊,谢谢!
Public Function 插值(x数组, y数组, x)Dim a(), b() As Variant
a = Application.Transpose(x数组)
b = Application.Transpose(y数组)
flag = 0
For i = LBound(a) To UBound(a) - 1
If x <= a(i + 1) And x >= a(i) Then
插值 = b(i) + (b(i + 1) - b(i)) / (a(i + 1) - a(i)) * (x - a(i))
flag = 1
Exit For
End If
Next
If flag = 0 Then
插值 = "error"
MsgBox "插入值越界"
End If
End Function
Public Function 插值(x数组, y数组, x)Dim a(), b() As Variant
a = Application.Transpose(x数组)
b = Application.Transpose(y数组)
flag = 0
For i = LBound(a) To UBound(a) - 1
If x <= a(i + 1) And x >= a(i) Then
插值 = b(i) + (b(i + 1) - b(i)) / (a(i + 1) - a(i)) * (x - a(i))
flag = 1
Exit For
End If
Next
If flag = 0 Then
插值 = "error"
MsgBox "插入值越界"
End If
End Function
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html