Prueba esto, ajusta cualquier ruta o parámetro que sea necesario.
Son dos macros, una para recorrer la carpeta en busca de cada csv, luego llama a la otra macro que es la que se encarga de hacer el Texto en Columna. Y luego guarda el archivo como un .xls
La macro que ejecutas es esta:
Sub OpenFiles()
Application.ScreenUpdating = False
Application.DisplayStatusBar = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
Dim Carpeta As String: Carpeta = ThisWorkbook.Path & "\Archivos CSV\"
Dim Archivo As String
Dim EsteLibro As Workbook: Set EsteLibro = ThisWorkbook
Dim OtroLibro As Workbook
Dim NewFileName As String
Archivo = Dir(Carpeta & "*.csv")
Do While Archivo <> ""
Set OtroLibro = Workbooks.Open(Carpeta & Archivo)
Call RunTextToColumn
NewFileName = Carpeta & Left(Archivo, Len(Archivo) - 3) & "xls"
OtroLibro.SaveAs Filename:=NewFileName, FileFormat:=xlWorkbookNormal
OtroLibro.Close
Set OtroLibro = Nothing
Archivo = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayStatusBar = True
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
MsgBox "terminado"
End Sub
Esa llama dentro a esta:
Sub RunTextToColumn()
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="|", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, _
1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12 _
, 1), Array(13, 1), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), _
Array(19, 1), Array(20, 1), Array(21, 1), Array(22, 1), Array(23, 1), Array(24, 1), Array( _
25, 1), Array(26, 1), Array(27, 1), Array(28, 1), Array(29, 1), Array(30, 1)), _
TrailingMinusNumbers:=True
Range("A1").Select
Cells.EntireColumn.AutoFit
End Sub
Te explico como funciona:
Las macros irían en un libro a parte, que funciona como una especie de controlador. Ese libro va a buscar en una carpeta que se llama "Archivos CSV" todos los archivos de formato .csv que se encuentren ahí. Los va a abrir, les va a aplicar el Texto en Columnas y lo va a guardar como .xls en esa misma carpeta.
A mí me ha funcionado perfecto.