What happened to you is that the system did not really hang, but instead the code got in an endless loop. The code keeps finding a marker and inserting rows until it returns and finds the first marker, that's why we recorded 'FirstAddress = ...'
Inserting the row before the marker moves the marker down one row and that is why I recorded
Rich (BB code):
FirstAddress = MarkerFound.Offset(1).Address
Now that you are inserting the row below the marker, the (first) marker will not move so, in this case we need to remove that red text from that line of code.
Also, just as a general guide, I always like to test on a small sample of data and step through the code a line at a time with F8. That way you get a better idea of what is happening and usually see if there is an endless loop problem.