The RTE 1004 means nothing and occurs in different scenarios... more or less "something unspecific gone wrong, don't know why".
The basic problem of your code is that you use SELECT and SELECTION. Please never use SELECT, SELECTION, ACTIVECELL, it is slow and error prone. Always refer to the objects directly.
The Offset is a property of the Range object
https://docs.microsoft.com/en-us/office/vba/api...
And if you want to Select the 5th column from the active cell, this obvious can not work if you are in column A to D...
Range("A:D").ColumnWidth = 21
That works regardless what is selected.
Andreas.