Вы можете использовать:
Sub test()
Dim LastColumn As Long
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
With ws
'Find the last column of row 1 of each sheet
LastColumn = .Cells(1, .Columns.Count).End(xlToLeft).Column
'Check if there are enought at least 33 (15+18) columns
If LastColumn >= 33 Then
.Columns(1).Resize(, 15).EntireColumn.Copy 'Set the destination here
.Columns(LastColumn - 17).Resize(, 18).EntireColumn.Copy 'Set the destination here
End If
End With
Next ws
End Sub
Имейте в виду, что код копирует весь столбец. если вы хотите избежать этого, вы можете найти последнюю строку и код до последней строки.