VBA – Exportar Rango a CSV (Archivo de Texto Delimitado)

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on abril 28, 2023

Guardar Rango a Archivo CSV

export range deliminatedSolución #670 sobre cómo exportar un rango a un archivo de texto delimitado.

Esta es una alternativa práctica para usar la forma predeterminada de Excel de guardar la hoja de trabajo como un archivo de texto o un archivo delimitado CSV al elegir «guardar como» cuando:

1. Utiliza una plantilla y sólo desea exportar los datos excluyendo encabezados y otras cosas varias

2. Del mismo modo, es posible que sólo desee exportar parte de un conjunto de datos

3. Desea guardar el archivo con un delimitador personalizado que puede ser exclusivo de su aplicación.

Si necesita hacer 1, 2 o 3 cosas, una función como la siguiente puede serle útil. Acepta un rango para exportar, la ubicación para guardar el archivo y el delimitador con el que desea separar los datos, y luego guarda los datos según lo especificado.

Así es como se llama a la función ExportRange:

Sub CallExport()

  'Exportar Rango(Rango,donde,delimitador)
  Call ExportRange(Hoja1.Range("A1:C20"), "C:mark.txt", ",")

End Sub

Primero le dices a la función el rango que quieres exportar, luego dónde exportarlo, que el delimitador a usar. También necesitará la función ExportRange, aquí está:

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

    Dim HoldRow As Long    'prueba de nueva variable de fila
    HoldRow = WhatRange.Row
    
    Dim c As Range
    
    'bucle a través de la variable de rango
    For Each c In WhatRange
        If HoldRow <> c.Row Then
            'añadir salto de línea y eliminar delimitador extra
            ExportRange = Left(ExportRange, Len(ExportRange) - 1) _
                              & vbCrLf & c.Text & Delimiter
            HoldRow = c.Row
        Else
            ExportRange = ExportRange & c.Text & Delimiter
        End If
    Next c
    
    'Recortar delimitador extra
    ExportRange = Left(ExportRange, Len(ExportRange) - 1)
    
    'Eliminar el archivo si ya existe
    If Len(Dir(Where)) > 0 Then
        Kill Where
    End If
    
    Open Where For Append As #1    'escribir el nuevo archivo
    Print #1, ExportRange
    Close #1
End Function

VBA Codificación Fácil

Deje de buscar código VBA en línea. Obtenga más información sobre AutoMacro: un generador de código VBA que permite a los principiantes codificar procedimientos desde cero con conocimientos mínimos de codificación y con muchas funciones que ahorran tiempo a todos los usuarios

alt text

Más información

vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples