Try this.. it should speed up the processing of the loops:
Application.ScreenUpdating = False
Application.Calculation = xlManual
'your code here..
Application.ScreenUpdating = True
Application.Calculation = xlAutomatic
Also, you could read your range into an array, as in:
dim arr() as variant
arr() = Range("your range here").Value
.. and then process your calculations within the array and write the results from the array back out to the worksheet. This would be faster than doing a copy/paste loop directly on the face of the worksheet. Would need a little more context from your example to actually write the code/solution.
Hope this helps. Good luck.