Very interesting, fumei! Thank you for sharing!

Please all of you, give yourself a "good job tap on the shoulder" as you did convince me to forget (as much as possible) about Selection, and to move to Range instead... The memory allocation is just another extra benefit!

And I will also move all Integers to Longs instead. Now, I mostly use Integers for loops like "For i=0 to MaxValue Next", where MaxValue would be a low number (e.g. less than 100). In this case, would you still recommend moving to Long as well?

is true that the memory blocks (being larger for Long) need destroying and reallocation
Is this an operation that is done by the parser (I assume so), or that we have to add in the code?