Como escrever um arquivo de texto sem [0D 0A(VBCRLF)] no final usando vba

Como escrever um arquivo de texto sem [0D 0A(VBCRLF)] no final usando vba

Estou desenvolvendo um processo que

copie o arquivo de texto e edite o conteúdo do arquivo de texto de acordo com os dados do Excel usando FileSystemObject.

Embora o código de quebra de linha do arquivo de texto original seja [0A(VBLF)],

após a edição, o código de quebra de linha do arquivo de texto atualizado torna-se [0D 0A(VBCRLF)].

Eu gostaria de escrever o código de quebra de linha como arquivo de texto original.

Qual a melhor maneira para fazer isto? Desde já, obrigado.

Responder1

Se você escrever seu arquivo de texto linha por linha, poderá escolher a quebra de linha

Sub sampleWriteVBLF()

    Set fso = CreateObject("Scripting.FileSystemObject")
    Set objFile = fso.CreateTextFile("D:\test.txt", True)

    objFile.Write "Hello" & vbLf
    objFile.Write "World" & vbLf

    objFile.Close

End Sub

insira a descrição da imagem aqui

            VBA       VBA               HEX     NAME
LF    \n    VbLf      Chr(10)           0x0A    Line Feed
CR    \r    VbCr      Chr(13)           0x0D    Carriage Return
CR+LF \r\n  VbCrLf    Chr(10)&Chr(13)   0x0D0A  Carriage Return Line Feed    

Editar:Você deve usar .writeporque .WriteLinesempre acrescentará uma quebra de linha CRLF adicional. Mas você já tem uma quebra de linha LF

informação relacionada