I thought this'd be a good one for trying recursion (a sub calling itself). This worked, but when testing on larger ranges ended up with a stack error, and a few problems with ranges on the edges of the sheet, so I abandoned it (it's included in the attached).

However, the second macro (test2) works on any size range, anywhere.

Pascal