T
TomLegado
I've got the following function that I would like to make versatile enough
that I can use it within VBA code and as a simple excel worksheet function.
I've pasted the function here where I'm having trouble, I need to figure out
how to count the elements in the range for both types of data. The "Size"
variable where I'm getting the dimension works with the UBound if my data
type is an array or variant, but I have to use Xrange.Count if the data is an
excel workbook range. Neither option works for both instances. Here is my
code:
Sub TestFunc()
Dim Test1(3) As Single, Test2(3) As Single, Value As Single, Value2 As
Single
Test1(1) = 3
Test1(2) = 2
Test1(3) = 1
Test2(1) = 1
Test2(2) = 2
Test2(3) = 3
Value = 2.5
Value2 = interpolate(Value, Test1, Test2)
Worksheets("Input Page").Select
Range("P25") = Value2
End Sub
Function interpolate(Value, xrange, yrange)
' Function linearly interpolates from a given x/y range
' Function allows for extrapolation outside the known range
'
Dim Size As Integer, Cumiminus1 As Single, Cumi As Single
Dim X1 As Single, X2 As Single, Y1 As Single, Y2 As Single
'
' Size = xrange.Count
' Size = 3
Size = UBound(xrange)
'
Thanks, Tom
that I can use it within VBA code and as a simple excel worksheet function.
I've pasted the function here where I'm having trouble, I need to figure out
how to count the elements in the range for both types of data. The "Size"
variable where I'm getting the dimension works with the UBound if my data
type is an array or variant, but I have to use Xrange.Count if the data is an
excel workbook range. Neither option works for both instances. Here is my
code:
Sub TestFunc()
Dim Test1(3) As Single, Test2(3) As Single, Value As Single, Value2 As
Single
Test1(1) = 3
Test1(2) = 2
Test1(3) = 1
Test2(1) = 1
Test2(2) = 2
Test2(3) = 3
Value = 2.5
Value2 = interpolate(Value, Test1, Test2)
Worksheets("Input Page").Select
Range("P25") = Value2
End Sub
Function interpolate(Value, xrange, yrange)
' Function linearly interpolates from a given x/y range
' Function allows for extrapolation outside the known range
'
Dim Size As Integer, Cumiminus1 As Single, Cumi As Single
Dim X1 As Single, X2 As Single, Y1 As Single, Y2 As Single
'
' Size = xrange.Count
' Size = 3
Size = UBound(xrange)
'
Thanks, Tom