¿Cómo modificar Macro para que se detenga en celdas con contenido " "?

Tengo una macro sumamente útil, que me permite generar cadenas de registros *.txt, a partir de los datos que toma de una hoja de excel. Esa hoja es el resultado de operaciones de otras hojas. Por lo que de acuerdo a los registros de cada mes puede completar más o menos filas. La macro actual no tiene en cuenta las celdas que están vacías, cosa que es correcto. Necesito además que la macro no tome en cuenta las celdas cuyo contenido es " ".

Esta es la macro en cuestión:

Sub GuardarTxt()

'Por.Dante Amor

    FileNum = FreeFile()

   ruta = "F:\TIENDA\INTER\"

   arch = Range("D1").Value & ".txt"

    'arch = "000517.txt"

    Open ruta & arch For Output As #FileNum

                'columnas       A  B  C   D  E   F   G  H   I   J  K  L  M  N  O

    cols = Array(0, 1, 1, 25, 1, 12, 12, 5, 14, 12, 1, 1, 1, 1, 8, 1)

    For i = 1 To Range("A" & Rows.Count).End(xlUp).Row

        For j = 1 To Columns("O").Column

            dato = Cells(i, j)

            Select Case j

                Case 1, 10

                    dato = Format(dato, "dd/mm/yyyy")

                Case 5, 6, 9

                    dato = Formatear(dato, cols, j, "0.00")

                Case 8

                    dato = Formatear(dato, cols, j, "0.000000")

                Case 7, 14

                    dato = Formatear(dato, cols, j, "0")

            End Select

            largo = cols(j)

            If largo = 1 Then

                largo = Len(dato)

            End If

            For k = 1 To largo

                car = Mid(dato, k, 1)

                If car = "" Then car = " "

                Print #FileNum, car;

            Next

            Print #FileNum, "|";

        Next

        Print #FileNum,

    Next

    Close #FileNum

    '

    MsgBox "Txt generado"

End Sub

'

Function Formatear(dato, cols, j, formato)

    dato = Format(dato, formato)

    l = Len(dato)

    m = cols(j)

    d = m - l

    Formatear = String(d, " ") & dato

End Function

Añade tu respuesta

Haz clic para o