VBA – Exportar Intervalo para CSV (Arquivo de Texto Delimitado)

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on May 19, 2023

Salvar intervalo em arquivo CSV

export range deliminatedSolução nº 670 sobre como exportar um intervalo para um arquivo de texto delimitado.

Essa é uma alternativa útil para usar a maneira padrão do Excel de salvar a planilha como um arquivo de texto ou arquivo delimitado CSV, escolhendo “salvar como” quando:

1. Você usa um modelo e deseja exportar apenas os dados, excluindo cabeçalhos e outras coisas diversas

2. Da mesma forma, você pode querer exportar apenas parte de um conjunto de dados

3. Você deseja salvar o arquivo com um delimitador personalizado que pode ser exclusivo para a sua aplicação.

Se você precisar fazer 1, 2 ou 3, uma função como a seguinte pode ajudar. Ela aceita um intervalo para exportar, o local para salvar o arquivo e o delimitador com o qual você deseja separar os dados e, em seguida, salva os dados conforme especificado.

Veja como chamar a função ExportarRange:

Sub ChamarExportar()

  'ExportarRange(range,where,delimiter)
  Call ExportarRange(Planilha1.Range("A1:C20"), "C:\teste\mark.txt", ",")

End Sub

Primeiro você informa à função o intervalo que deseja exportar, depois para onde exportá-lo e, em seguida, o delimitador a ser usado. Você também precisará da função ExportarRange, e aqui está ela:

Function ExportarRange(WhatRange As Range, _
         Where As String, Delimiter As String) As String

  Dim HoldRow As Long    'teste para nova variável de linha
  HoldRow = WhatRange.Row

  Dim c As Range

  'loop através da variável range
  For Each c In WhatRange
    If HoldRow <> c.Row Then
      'adicionar quebra de linha e remover o delimitador extra
      ExportarRange = Left(ExportarRange, Len(ExportarRange) - 1) _
                          & vbCrLf & c.Text & Delimiter
        HoldRow = c.Row
    Else
        ExportarRange = ExportarRange & c.Text & Delimiter
    End If
Next c

'Aparar delimitador extra
ExportarRange = Left(ExportarRange, Len(ExportarRange) - 1)

'Eliminar o arquivo se ele já existir
If Len(Dir(Where)) > 0 Then
    Kill Where
End If

Open Where For Append As #1    'gravar o novo arquivo
Print #1, ExportarRange
Close #1
End Function

Codificação VBA facilitada

Pare de procurar códigos VBA on-line. Saiba mais sobre o AutoMacro – um construtor de código VBA que permite que os iniciantes codifiquem procedimentos do zero com o mínimo de conhecimento de codificação e com muitos recursos que economizam tempo para todos os usuários!

alt text

Saiba mais!

vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA