En Excel tenemos dos alternativas:
1. Usar el mismo Excel, Bloc de notas, u otro editor de texto como Notepad++, para reemplazar un carácter por otro. Cuando el número de ocurrencias es muy grande, millones en el caso de fichero de tamaño considerable, el proceso puede ser algo lento.
2. Utilizar código de VBA acelerando el proceso notablemente, evitando tener que abrir otros programas, reduciendo la probabilidad de errores y pudiendo llamarlo desde una macro u otro módulo.
Copiamos el siguiente código en un módulo de Ms Excel:
Public Sub ReemplazarCaracteresExcel()
Dim folderPath As String
folderPath = ThisWorkbook.Path & "\" 'Ruta del Excel
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(folderPath & "Inicial.csv") Then
Set objStream = fso.OpenTextFile(folderPath & "Inicial.csv", 1, False, 0)
End If
Set objCopy = fso.CreateTextFile(folderPath & "Final.csv")
For x = 1 To 5 'Se salta el nº de líneas indicadas: 5
objStream.readline
Next x
Do While Not objStream.AtEndOfStream
strOldLine = objStream.readline
i = 1
NewArray = Split(strOldLine, ",") 'Carácter reemplazado: ,
strNewLine = NewArray(0)
Do Until i = UBound(NewArray) + 1
strNewLine = strNewLine & ";" & NewArray(i) 'Carácter nuevo: ;
i = i + 1
Loop
objCopy.WriteLine strNewLine
Loop
End Sub
Notas:
El fichero Inicial.csv debe de estar en la misma ruta del Excel. El fichero Final.csv se creará automáticamente.
Borrar estas 3 líneas en el caso de que en el fichero de texto no haya que saltarse líneas en blanco y que provocarían un error:
For x = 1 To 5 'Se salta el nº de líneas indicadas
objStream.readline
Next x
También se puede usar este código para ficheros *txt. Ejemplo: Inicial.txt y Final.txtEntradas relacionadas
Nube de datos
No hay comentarios:
Publicar un comentario