What causes a macro to lock up at various points?

I have a fairly long macro that converts four vertical columns of data to one horizontal row. This is for stock price data of 116 stocks, and it uses the Open, High, Low and Close each day. The macro takes row 2 data and moves it up beside row 1 data, then grabs row 3 and adds it to the end of row 1, then grabs row 4 data and adds it to the end of row 1, etc., etc., until all 116 sets of data are in row 1. It will lock up at different points in the process and the only way to get it to unlock is to hit Ctrl>Alt>Del. Then I have to restart the computer.