Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.worksheet.functions
|
|||
|
|||
Function doesn't work
The following function doesn't work (I get #VALUE in the cell)
It is called with, say, =IntrptFn2($B$56,$K11,$L11) I've been unable to debug it. Why doesn't it evaluate properly? ------- Function IntrptFn2(sRel, tauLeft, tauRight) As Double ' =IntrptFn2($B$56,$K11,$L11) doesn't work eL = Application.WorksheetFunction.Exp(-tauLeft) eR = Application.WorksheetFunction.Exp(-tauRight) es = Application.WorksheetFunction.Exp(-sRel) IntrptFn2 = Abs((1 + tauLeft) * eL - (1 + tauRight) * eR) ' That's good for xLeft0, or xRight<0). Now inbetween If (tauLeft < 0 And tauRight 0) Then tauGreater = tauLeft If (tauRight tauLeft) Then tauGreater = tauRight End If eG = Application.WorksheetFunction.Exp(-tauGreater) IntrptFn2 = (1 + sRel) * es - (1 + tauGreater) * eG End If End Function |
#2
Posted to microsoft.public.excel.worksheet.functions
|
|||
|
|||
Function doesn't work
"Neal Carron" wrote:
The following function doesn't work (I get #VALUE in the cell) It is called with, say, =IntrptFn2($B$56,$K11,$L11) I've been unable to debug it. Why doesn't it evaluate properly? What does the following statement show you: debug.print sRel, tauLeft, tauRight FYI, I find the following logic to be strange: If (tauLeft < 0 And tauRight 0) Then tauGreater = tauLeft If (tauRight tauLeft) Then tauGreater = tauRight End If eG = Application.WorksheetFunction.Exp(-tauGreater) If the first condition is true (tauLeft<0 and tauRight0), the second condition is always true (tauRight tauLeft). So eG = eR always. Is something wrong with your logic? (Not the cause of the #VALUE error, though.) ----- original message ----- "Neal Carron" wrote: The following function doesn't work (I get #VALUE in the cell) It is called with, say, =IntrptFn2($B$56,$K11,$L11) I've been unable to debug it. Why doesn't it evaluate properly? ------- Function IntrptFn2(sRel, tauLeft, tauRight) As Double ' =IntrptFn2($B$56,$K11,$L11) doesn't work eL = Application.WorksheetFunction.Exp(-tauLeft) eR = Application.WorksheetFunction.Exp(-tauRight) es = Application.WorksheetFunction.Exp(-sRel) IntrptFn2 = Abs((1 + tauLeft) * eL - (1 + tauRight) * eR) ' That's good for xLeft0, or xRight<0). Now inbetween If (tauLeft < 0 And tauRight 0) Then tauGreater = tauLeft If (tauRight tauLeft) Then tauGreater = tauRight End If eG = Application.WorksheetFunction.Exp(-tauGreater) IntrptFn2 = (1 + sRel) * es - (1 + tauGreater) * eG End If End Function |
#3
Posted to microsoft.public.excel.worksheet.functions
|
|||
|
|||
Function doesn't work
I've resolved it. The problem was that the statement
eG = Application.WorksheetFunction.Exp(-tauGreater) doesn't work. You just need eG = Exp(-tauGreater) I have no idea why; other macros I have require the long version. "Joe User" wrote: "Neal Carron" wrote: The following function doesn't work (I get #VALUE in the cell) It is called with, say, =IntrptFn2($B$56,$K11,$L11) I've been unable to debug it. Why doesn't it evaluate properly? What does the following statement show you: debug.print sRel, tauLeft, tauRight FYI, I find the following logic to be strange: If (tauLeft < 0 And tauRight 0) Then tauGreater = tauLeft If (tauRight tauLeft) Then tauGreater = tauRight End If eG = Application.WorksheetFunction.Exp(-tauGreater) If the first condition is true (tauLeft<0 and tauRight0), the second condition is always true (tauRight tauLeft). So eG = eR always. Is something wrong with your logic? (Not the cause of the #VALUE error, though.) ----- original message ----- "Neal Carron" wrote: The following function doesn't work (I get #VALUE in the cell) It is called with, say, =IntrptFn2($B$56,$K11,$L11) I've been unable to debug it. Why doesn't it evaluate properly? ------- Function IntrptFn2(sRel, tauLeft, tauRight) As Double ' =IntrptFn2($B$56,$K11,$L11) doesn't work eL = Application.WorksheetFunction.Exp(-tauLeft) eR = Application.WorksheetFunction.Exp(-tauRight) es = Application.WorksheetFunction.Exp(-sRel) IntrptFn2 = Abs((1 + tauLeft) * eL - (1 + tauRight) * eR) ' That's good for xLeft0, or xRight<0). Now inbetween If (tauLeft < 0 And tauRight 0) Then tauGreater = tauLeft If (tauRight tauLeft) Then tauGreater = tauRight End If eG = Application.WorksheetFunction.Exp(-tauGreater) IntrptFn2 = (1 + sRel) * es - (1 + tauGreater) * eG End If End Function |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Is this function supposed to work? | Excel Worksheet Functions | |||
need a function that will work using multiple work books and sheet | Excel Worksheet Functions | |||
my TEXT function won't work | Excel Worksheet Functions | |||
Why does my Function not work? | Excel Discussion (Misc queries) | |||
how do i get the mid function to work with a zero | Excel Worksheet Functions |