Como quitar lineas en blanco al pasar de Excel a Notepad

Tengo la siguiente macro:

Public Sub ExportToTextFile(FName As String, Sep As String, SelectionOnly As Boolean)
Dim WholeLine As String
Dim FNum As Integer
Dim RowNdx As Long
Dim ColNdx As Integer
Dim StartRow As Long
Dim EndRow As Long
Dim StartCol As Integer
Dim EndCol As Integer
Dim CellValue As String
Application.ScreenUpdating = True
On Error GoTo EndMacro:
FNum = FreeFile
If SelectionOnly = True Then
With Selection
StartRow = .Cells(1).Row
StartCol = .Cells(1).Column
EndRow = .Cells(.Cells.Count).Row
EndCol = .Cells(.Cells.Count).Column
End With
Else
With ActiveSheet.UsedRange
StartRow = .Cells(1).Row
StartCol = .Cells(1).Column
EndRow = .Cells(.Cells.Count).Row
EndCol = .Cells(.Cells.Count).Column
End With
End If
Open FName For Output Access Write As #FNum
For RowNdx = StartRow To EndRow
WholeLine = ""
For ColNdx = StartCol To EndCol
If Cells(RowNdx, ColNdx).Value = "" Then
CellValue = Chr(34) & Chr(34)
Else
CellValue = Application.WorksheetFunction.Text(Cells(RowNdx, ColNdx).Value, Cells(RowNdx, ColNdx).NumberFormat)
End If
WholeLine = WholeLine & CellValue & Sep
Next ColNdx
WholeLine = Left(WholeLine, Len(WholeLine) - Len(Sep))
Print #FNum, WholeLine
Next RowNdx
EndMacro:
On Error GoTo 0
Application.ScreenUpdating = True
Close #FNum
End Sub
Sub test()
ExportToTextFile ThisWorkbook.Path & "\test.txt", "", True
End Sub
La cual me sirve para pasar lo que tengo en una hoja de Excel a un bloc de notas; sin embargo, esta macro solamente quita las comillas que se generan al hacer la acción antes comentada y no quita las líneas en blanco y por eso necesito una macro que quite los espacios en blanco. El programa que utilizo para abrir el bloc de notas es el Notepad ++, y estoy pasando con otra macro de bloc de notas a Excel y con la macro que te estoy presentando es de Excel a bloc de notas, si solo pasas de Excel a bloc de notas no se generan las líneas.
Cualquier duda me comentas.

1 Respuesta

Respuesta
1

He sustituido estas lineas

If Cells(RowNdx, ColNdx).Value = "" Then    CellValue = Chr(34) & Chr(34)Else

por esta otra

If Cells(RowNdx, ColNdx).Value <> "" Then

Y con esto lo que se logra es que si existe algún rango vacío, no lo tenga en cuenta y continué con el siguiente, de este modo se evitan las lineas que solo contienen comillas en el archivo TXT, haz las pruebas correspondientes y me comentas como te va.

Me fue mucho peor, ahora solo me pone:

""
""
""
""
""
""
""

en vez del texto.

Prueba a descargar este archivo, lo he probado y funciona con los datos que tiene (espero que no sean muy distintos de los tuyos), me comentas como te va.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas