Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi,
I am using excel and VB to do my work and when some wrong result is returned in excel, I debug my code to find where it is wrong. When I evaluated a particular statement: - 'Checks if the edges and sensor center point are close to the line B ElseIf (Abs((Abs((mB * SensorX) - SensorY + cB) / (Sqr((mB ^ 2) + 1))) - SensorRadius) <= 0.03) Or ((Abs((mB * SensorX) - SensorY + cB) / (Sqr((mB ^ 2) + 1))) <= 0.03) And ((SensorY ((mC * SensorX) + cC)) And (SensorY < ((mA * SensorX) + cA))) Then InRange = "X" I found out that 1st, 2nd and 4th statments gave me True whereas the third statment gave me a False. Now the entire result must be a False. (True or True And False And True) = False. But instead I get True. What is wrong???? I have assigned my brackets correctly and I cant see why this problem is caused? Can anyone please help? Thanks Swamy |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Swamy,
Perhaps you need to group the 1st and 2nd conditions together..i.e., True or True And False And True = True but, (True or True) And False And True = False -- Hope that helps. Vergel Adriano "Mahadevan Swamy" wrote: Hi, I am using excel and VB to do my work and when some wrong result is returned in excel, I debug my code to find where it is wrong. When I evaluated a particular statement: - 'Checks if the edges and sensor center point are close to the line B ElseIf (Abs((Abs((mB * SensorX) - SensorY + cB) / (Sqr((mB ^ 2) + 1))) - SensorRadius) <= 0.03) Or ((Abs((mB * SensorX) - SensorY + cB) / (Sqr((mB ^ 2) + 1))) <= 0.03) And ((SensorY ((mC * SensorX) + cC)) And (SensorY < ((mA * SensorX) + cA))) Then InRange = "X" I found out that 1st, 2nd and 4th statments gave me True whereas the third statment gave me a False. Now the entire result must be a False. (True or True And False And True) = False. But instead I get True. What is wrong???? I have assigned my brackets correctly and I cant see why this problem is caused? Can anyone please help? Thanks Swamy |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I found out that 1st, 2nd and 4th statments gave me True whereas the
third statment gave me a False. Now the entire result must be a False. (True or True And False And True) = False. But instead I get True. What is wrong???? I have assigned my brackets correctly and I cant see why this problem is caused? Can anyone please help? Thanks AND has a higher operator precedence than OR, so True Or True And False And True evaluates the ANDs first, before the OR... this means the intermediate result, after the ANDs are handled, is this... True Or False which evaluates to True. You can use parentheses to force the order of precedence handling. If that first term is supposed to be "grouped" with the second term, just enclose them both in parentheses. Using your True, False example (instead of repeating the actual logical expressions), this is what you need... (True Or True) And False And False which will equate to False. Rick |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thanks for your help. It finally worked :).
Swamy On Jun 8, 1:32 pm, "Rick Rothstein \(MVP - VB\)" wrote: I found out that 1st, 2nd and 4th statments gave me True whereas the third statment gave me a False. Now the entire result must be a False. (True or True And False And True) = False. But instead I get True. What is wrong???? I have assigned my brackets correctly and I cant see why this problem is caused? Can anyone please help? Thanks AND has a higher operator precedence than OR, so True Or True And False And True evaluates the ANDs first, before the OR... this means the intermediate result, after the ANDs are handled, is this... True Or False which evaluates to True. You can use parentheses to force the order of precedence handling. If that first term is supposed to be "grouped" with the second term, just enclose them both in parentheses. Using your True, False example (instead of repeating the actual logical expressions), this is what you need... (True Or True) And False And False which will equate to False. Rick |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
What's the best way to toggle between true and false in Excel? Hiall, My excel work involves a lot of toggling between true and false (booleantypes) ... and it's very repetitive... Is there a way to select a bunch ofcells, and press a key short-cu | Excel Discussion (Misc queries) | |||
Search for 2 true arguments and return true or false | Excel Discussion (Misc queries) | |||
Function to return True/False if all are validated as True by ISNU | Excel Worksheet Functions | |||
True / false output problem | Excel Programming | |||
True Or False, no matter what... it still displays the false statement | Excel Programming |