I have a worksheet where the I have a constant list of headers, though the column position changes all the time.
Below are the headers in the required order, and I'm trying to write a macro that will put them in a consistent order, but really struggling.
AddressLine1 | City | ZipCode | Phone | CountryCode | Size | AddressLine2 | State | AddressLine3
I've tried to find the correct column based on the name, but can't for the life of me get it to cut the column before I paste it elsewhere.
If anyone is able to help in any way that would be super appreciated.
Dim rngHeaders As Range
Dim rngAddressLine1Header As Range
Dim rngCityHeader As Range
Dim rngZipCodeHeader As Range
Dim rngPhoneHeader As Range
Dim rngCountryCodeHeader As Range
Dim rngSizeHeader As Range
Dim rngAddressLine2Header As Range
Dim rngStateHeader As Range
Dim rngAddressLine3Header As Range
Dim rngRafflenNameHeader As Range
Set ws = Sheets("Addresses")
With ws
Set rngHeaders = Range("1:1")
Set rngAddressLine1Header = rngHeaders.Find("AddressLine1")
'Set rngCityHeader = rngHeaders.Find("City")
'Set rngZipCodeHeader = rngHeaders.Find("ZipCode")
'Set rngPhoneHeader = rngHeaders.Find("Phone")
'Set rngCountryCodeHeader = rngHeaders.Find("CountryCode")
'Set rngSizeHeader = rngHeaders.Find("Size")
'Set rngAddressLine2Header = rngHeaders.Find("AddressLine2")
'Set rngStateHeader = rngHeaders.Find("State")
'Set rngAddressLine3Header = rngHeaders.Find("AddressLine3")
.Select
Column.rngAddressLine1Header.Select
Selection.Cut
Columns("D:D").Select
Selection.paste
Thanks
following the below suggestion I have got it to work for the first column, though I get a 438 error after pasting the first column and it tries the second instance
.Select
rngAddressLine1Header.EntireColumn.Cut
Columns("E:E").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Selection.Paste
rngCityHeader.EntireColumn.Cut
Columns("F:F").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Selection.Paste```
Do I need to do a new Select function between each one?