You can't interrupt any ongoing process, such as a
loop, except by placing the line DoEvents in an
iteration. DoEvents causes the program to temporarily stop,
see if there are any other commands that also need doing,
and work on those for a while.
Otherwise, your PC is so busy executing the loop that
it never has time to see your "Halt!" command.