What happens when you watch it in the script debugger? Is the global field in the Tab Order? If so, is it first?
Sounds like you have a script trigger for this, which one? If it's OnObjectExit or OnObjectModify, try an Exit Script Step with the result of False or "0" (zero, no quotes). You sure you need the Refresh Window step?
The script trigger is onObjectValidate. The tab order on the field that I want to go back to (GLOBAL::x_week_selected) is 2. I'm not sure I need the refresh.
I'll try removing it.
When I watch in the debugger, it does exactly as I described it. As soon as the last step is complete, the cursor jumps to the next field.
I tried changing the script trigger to onObjectExit. Same result.
Here is the current iteration of the script
I found that Halt Script worked like a charm. Not sure why Exit didn't do the trick, because I tried in the exact same spot before moving it around.