The code I provided in this
https://www.msofficeforums.com/word-...there-one.html uses ranges instead of selections. You will also find that almost all of the code I've posted on msofficeforums.com uses ranges. Most other vba coders contributing solutions here do likewise.
Since we don't know exactly what it is you want to do, it's hard to give specific advice. There are, of course, times when one must revert to using Selection (e.g. to do something in one go to a whole table column), but those times are fairly rare.