If your vba alters a cell value the whole spreadsheet will recalc. If the
spreadsheet is slow at recalcing this may cause speed to reduce to a crawls.
One option, if this is the issue, is to turn recalc off at the start of the
macro and on again at the end. This depends a bit on your algorithm, though.