Escribir datos en un archivo de texto usando Excel VBA - Macros fáciles de Excel

Tabla de contenido

A continuación, veremos un programa en Excel VBA ese escribe un rango de Excel en un archivo de texto CSV (valores separados por comas).

Situación:

Coloque un botón de comando en su hoja de trabajo y agregue las siguientes líneas de código:

1. Primero, declaramos una variable llamada myFile de tipo String, un objeto llamado rng de tipo Range, una variable llamada cellValue de tipo Variant, una variable llamada i de tipo Integer y una variable llamada j de tipo Integer. Usamos una variable Variant aquí porque una variable Variant puede contener cualquier tipo de valor.

Dim myFile como cadena, rng como rango, cellValue como variante, i como entero, j como entero

2. Necesitamos especificar la ruta completa y el nombre de archivo del archivo.

myFile = Application.DefaultFilePath & "\ sales.csv"

Nota: la propiedad DefaultFilePath devuelve la ruta de archivo predeterminada. Para cambiar la ubicación predeterminada del archivo, en la pestaña Archivo, haga clic en Opciones, Guardar.

3. Inicializamos el objeto de rango rng con el rango seleccionado.

Establecer rng = Selección

4. Agregue la siguiente línea de código:

Abra myFile para la salida como n. ° 1

Nota: esta declaración permite escribir en el archivo. Podemos referirnos al archivo como # 1 durante el resto de nuestro código. Si el archivo ya existe, se eliminará y se creará un nuevo archivo con el mismo nombre.

5. Inicie un bucle doble.

Para i = 1 Para rng.Rows.Count
Para j = 1 To rng.Columns.Count

Nota: rng.Rows.Count devuelve el número de filas (17 en este ejemplo) y rng.Columns.Count devuelve el número de columnas (4 en este ejemplo).

6. Excel VBA escribe el valor de una celda en la variable cellValue.

cellValue = rng.Cells (i, j) .Value

7. Agregue las siguientes líneas de código para escribir el valor de cellValue en el archivo de texto.

Si j = rng.Columns.Count Entonces
Escriba # 1, cellValue
Demás
Escriba # 1, cellValue,
Terminara si

Explicación: debido a la declaración If Then Else, Excel VBA solo comienza una nueva línea (Write # 1, cellValue) cuando j es igual al número de columnas (último valor en una fila). Para separar los valores con una coma, use Write # 1, cellValue, (con una coma).

8. No olvide cerrar ambos bucles.

 Siguiente j
Siguiente yo

9. Cierre el archivo.

Cerrar # 1

10. Seleccione los datos y haga clic en el botón de comando en la hoja.

Resultado:

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave