Title
Anteriormente vimos como
reemplazar carácter en un fichero de texto con VBA en Excel. En esta ocasión, en lugar de especificar en nuestro código la ruta y nombre del fichero, lo seleccionamos mediante un cuadro de diálogo. El nuevo fichero con el sufijo
_final se creará en la misma ruta del fichero seleccionado.
Public Sub ReemplazarCaracteresExcel()
Application.ScreenUpdating = False
Set wb = Workbooks.Open(Filename:=Application.GetOpenFilename)
Ruta = ActiveWorkbook.FullName
RutaSinExtension = Left(Ruta, InStrRev(Ruta, ".") - 1)
wb.Close False
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(Ruta) Then
Set objStream = fso.OpenTextFile(Ruta, 1, False, 0)
End If
Set ObjCopy = fso.CreateTextFile(RutaSinExtension & "_final." & Right(Ruta, 3))
For x = 1 To 5 '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
Application.ScreenUpdating = True
MsgBox "Fichero creado: " & RutaSinExtension & "_final." & Right(Ruta, 3)
End Sub
Borramos 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
Entradas relacionadas:
No hay comentarios:
Publicar un comentario