While possibly tangent to the question at hand...
Selection() may be related to:
ActiveCell(x, y)
(they both have he same parameter format) which appears to be a form
of relative addressing.
However, it some sort of internal "_Default" construct and not to
be used in code (according to help, or did I see this in MSDN) .
ActiveCell(1, 1) is the selected cell - (0, 0) is one up and left].
I found this in some of my early code - must have stumbled across it
thinking it was the .Offset method.
To reference near-by cells 'relatively', use the offset method
ActiveCell.Offset(1, -2) is one down, two left.
I haven't been following the whole thread, but it soulds like a
Named Range is desired, but as a variable. Setting an Object,
perhaps. I'll butt out.