I know but it's this way in 2011 and 2012. I don't understand why it was changed to that. Hopefully it will be fixed in a service pack or hotfix but don't count on it. In the meantime, here is what I used to get my code to work. I am only using the Item, Component Type, Part Number, Qty, and Description columns. This will sort it in that order.
Public Sub RearrangeColumns(ByVal strExcelFileName As String)
Try
oExcelApp = GetObject(, "Excel.Application")
Catch ex As Exception
oExcelApp = CreateObject("Excel.Application")
oExcelApp.Visible = False
End Try
Dim oBook As Workbook
Dim oSheet As Worksheet
oBook = oExcelApp.Workbooks.Open(strExcelFileName)
oSheet = oBook.WorkSheets(1)
'cut the item and paste it at the beginning
oSheet.Columns("C:C").select()
oExcelApp.Selection.cut()
oSheet.Columns("A:A").Select()
oExcelApp.Selection.Insert(Microsoft.Office.Interop.Excel.XlDirection.xlToRight)
'cut the Part number and paste it as the 3rd column
oSheet.Columns("D:D").select()
oExcelApp.Selection.cut()
oSheet.Columns("C:C").Select()
oExcelApp.Selection.Insert(Microsoft.Office.Interop.Excel.XlDirection.xlToRight)
'cut the Qty and paste it as the 4th column
oSheet.Columns("E:E").select()
oExcelApp.Selection.cut()
oSheet.Columns("D:D").Select()
oExcelApp.Selection.Insert(Microsoft.Office.Interop.Excel.XlDirection.xlToRight)
oBook.Save()
oExcelApp.Visible = True
End Sub
Hopefully that helps.