Hi Jonathin, First, you should not use the variable you are using to loop through your collection, outside of the "for each" loop. It's not defined to have any value. This is why you are sometimes getting an error in the line which tries to use oChild.
I'd suggest before the "for each" loop, that you set the function's return value to be "nothing"; so if you don't find it, this is what the function will return. Then, inside of the "if" inside the "for each", when you find the control, set the function's return value to be what you found, and then have a "exit function" command to stop searching. There are other ways of doing this: set a variable to "nothing" before the "for each" loop, and then set this variable to the found control if/when you find it, and then have a "exit for" as you do. After the loop, then set the function to return this variable. It comes out to be about the same as my first suggestion, but maybe you find it a little clearer. Hth, Chip -----Original Message----- From: Jonathan C. Cohn [mailto:[email protected]] Sent: Saturday, February 15, 2014 2:47 PM To: [email protected] Subject: When a search fails how to handle. Good day, I have made progress in creating a script that searches for a given control. FOR EACH oChild IN Obj.Children IF oChild.Name = MySearchItem THEN EXIT FOR END FOR ' Nex line errors when search failed. IF oChild IS NOTHING THEN ReturnValue = NOTHING ELSE ReturnValue = oChild END IF What should I be using in the second IF clause? Thanks, Jonathan
