EXCEL: EXPORTAR E SALVAR SEM ASPAS EM .TXT

ADRIANOX 25/02/2014 16:15:01
#435295
Amigos do VBMania,

Estou com dificuldade em exportar e salvar uma planilha em txt devido a caracteres especiais.

Existem algumas linhas, conforme abaixo que existem caracteres especiais: Nesse caso já são aspas.

<?xml version=[Ô]1.0[Ô] encoding=[Ô]UTF-8[Ô] ?>
<IncluirRAS xmlns:xsi=[Ô]http://www.w3.org/2001/XMLSchema-instance[Ô] xsi:noNamespaceSchemaLocation=[Ô]incluir_RAS.xsd[Ô]>

Depois de salvo em txt fica nesse formato:

[Ô]<?xml version=[Ô][Ô]1.0[Ô][Ô] encoding=[Ô][Ô]UTF-8[Ô][Ô] ?>[Ô]
[Ô]<IncluirRAS xmlns:xsi=[Ô][Ô]http://www.w3.org/2001/XMLSchema-instance[Ô][Ô] xsi:noNamespaceSchemaLocation=[Ô][Ô]incluir_RAS.xsd[Ô][Ô]>[Ô]

Se observarem, a onde existe caracter especial, nesse caso [Ô]Aspas[Ô], ele acrescentou mais aspas devido a esse caracter especial.

Veja outro exemplo abaixo:

Quando salvo um arquivo em .TXT pelo VBA (ActiveWorkbook.SaveAs [Ô]c:\TesteXML.txt[Ô], FileFormat:=xlTextWindows, Local:=True) e neste arquivo contem aspas ele coloca aspas no inicio e no final da linha e duplica as aspas existentes. Isso ocorre com outros caracteres também, exemplo, ponto e virgula( ; ).

Gostaria de salvar sem aspas e manter os caracteres especiais sem alteração.

Me indicaram Replace(String, Chr(34), [Ô][Ô]), mas, o problema que ele remove até os dados originais do arquivo, os caracteres especiais e não somente o que gera automatico.

Como salvar aquivo contendo caracteres especiais sem aspsas?
PROGJR 20/07/2022 12:04:55
#500238
  Sub Exportar_TXT()

Application.ScreenUpdating = False

"Seleciona a guia Extract do Excel depois a célula A1
Sheets("Extract").Select
Range("A1").Select

"Iniciar exportação txt via Print com texto exato mostrado em tela sem erro das aspas

Dim Path As String
Dim FileNumber As Integer
Dim LR As Integer
Dim LC As Integer

Dim k As Integer
Dim i As Integer

LR = Worksheets("Extract").Cells(Rows.Count, 1).End(xlUp).Row
LC = Worksheets("Extract").Cells(1, Columns.Count).End(xlToLeft).Column

Path = ThisWorkbook.Path & "\Extract " & Format(Now(), "ddmmyyyy-hhmmss") & ".txt"
FileNumber = FreeFile

Open Path For Output As FileNumber

For k = 1 To LR

For i = 1 To LC

If i <> LC Then
Print #FileNumber, Cells(k, i),
Else
Print #FileNumber, Cells(k, i)
End If

Next i

Next k

Close FileNumber


" Caso deseja abrir o notepad imediatamente para conferir o txt gerado só retirar a linha comentada abaixo:


"Shell "notepad.exe " & Path, vbNormalFocus



Application.ScreenUpdating = True

MsgBox "Extract*.txt salvo na pasta onde abriu este Excel!"

End Sub
Faça seu login para responder