Te anexo una macro para generar archivos.
Tienes que cambiar en la macro los siguientes datos:
- El nombre de la hoja que tiene los datos.
Sheets("Hoja1").Select
- El número de columnas que se va a enviar al archivo
numcol = 3
- El tamaño de cada una de las columnas. La primer columna en la siguiente instrucción debe ir con un 0, tú debes empezar a numerar el siguiente valor. En mi ejemplo estoy poniendo que se van a exportar 3 columnas, la primer columna con 30 caracteres, la segunda con 11 y la última (que es la que va a llevar los caracteres en blanco), le estoy poniendo 16
cols = Array(0, 30, 11, 16)
-El nombre del archivo
arch = "exporta.prn"
Pon la siguiente macro en un módulo y ejecútala.
Sub ExportarExcelTxt()
'Por.Dante Amor
Sheets("Hoja1").Select
numcol = 3
cols = Array(0, 30, 11, 16)
arch = "exporta.prn"
'
FileNum = FreeFile()
ruta = ThisWorkbook.Path & "\"
Open ruta & arch For Output As #FileNum
'
For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
For j = 1 To numcol
dato = Cells(i, j)
For k = 1 To cols(j)
car = Mid(dato, k, 1)
If car = "" Then car = " "
Print #FileNum, car;
Next
Next
Print #FileNum,
Next
Close #FileNum
'
MsgBox "El archivo PRN fue guardado en la ruta: " & ruta
End Sub
Revisa el archivo generado y comentas si es el correcto.