Я бы посоветовал вам удалить дополнительный столбец в исходном листе, прежде чем копировать данные. Когда вы закрываете файл после копирования без сохранения, это не должно быть проблемой.
Обратите внимание, что когда вы удаляете что-то, вы всегда должны делать это с конца до начала.
Dim startRow As Long
startRow = 1
xFile = Dir(xStrPath & "\*.xml")
Do While xFile <> ""
Set xWb = Workbooks.OpenXML(xStrPath & "\" & xFile)
With xWb.Sheets(1)
Dim lastCol As Long, col As Long
lastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
' Loop over all columns from right to left
For col = lastCol To 1 Step -1
' Throw the extra column away
If .Cells(1, col) = "YourUnwantedCol" Then
.Cells(1, col).EntireColumn.Delete
End If
Next col
' Now copy the data
.UsedRange.Copy xSWb.Sheets(1).Cells(startRow, 1)
startRow = startRow + .UsedRange.Rows.Count
' Close without saving, don't show a warning.
Application.DisplayAlerts = False
xWb.Close False
Application.DisplayAlerts = True
xFile = Dir()
End With
Loop