Problema
Deseamos unir y consolidar todos los ficheros de texto guardados en una carpeta en un fichero de texto único. Por ejemplo, como paso previo para importar el mismo en Excel, Access u otros programa.
Solución
El siguiente código unirá todos los ficheros con la extensión txt presentes en la ruta donde se ubica el fichero Excel ThisWorkbook.Path, con independencia del formato, columnas o encabezados. Insertamos un salto de línea vbCrLf delante de cada fichero.
- Abrimos el Editor de Microsoft Visual Basic: Alt+F11.
- Copiamos la siguiente subrutina en un módulo.
- Ejecutamos la subrutina, F5.
- Aparecerá un cuadro de diálogo mostrando el tiempo de ejecución de la subrutina.
- En la carpeta en la que se ubica el Excel se habrá creado un fichero con el nombre: nuevo_fichero.txt.
Sub Unir_Ficheros() Dim t As Single t = Timer c00 = ThisWorkbook.Path & "\" ' the path c01 = Dir(c00 & "*.txt") Do Until c01 = "" c02 = c02 & vbCrLf & CreateObject("scripting.filesystemobject").opentextfile(c00 & c01).readall c01 = Dir Loop CreateObject("scripting.filesystemobject").createtextfile(c00 & "nuevo_fichero.txt").write c02 MsgBox Timer - t End Sub
Referencias
en que parte puedo modificar que el archivo generado me elimine los renglones en blanco que genera al unificar los txt.
ResponderEliminarquedo al pendiente.
saludos.