Escribir datos en un archivo de texto

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

Situación:

Coloca un botón de comando en tu hoja de trabajo y añade las siguientes líneas de código:

1. Primero, declaramos una variable llamada miArchivo de tipo Cadena, un objeto llamado rng de tipo Rango, una variable llamada ValorCelular de tipo Variante, una variable llamada i de tipo Entero, y una variable llamada j de tipo Entero. Utilizamos una variable Variante aquí porque una variable Variante 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 del archivo.

myFile = Aplicación. DefaultFilePath & «sales.csv»

Nota: la propiedad DefaultFilePath devuelve la ruta de archivo por defecto. Para cambiar la ubicación de archivo predeterminada, en la ficha Archivo, haz clic en Opciones, Guardar.

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

Set rng = Selección

4. Añade la siguiente línea de código:

Abrir mi archivo para la salida como #1

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

5. Inicie un doble bucle.

Para i = 1 Para rng.Rows.Count Para j = 1 Para rng.Columnas.Contar

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. Añade las siguientes líneas de código para escribir el valor de celdaValor en el archivo de texto.

Si j = rng.Columnas.Cuenta entonces Escribe #1, valor de la celda Else Escribe #1, Valor de la celda, Finalizar si

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

8. No te olvides de cerrar los dos bucles.

Siguiente j Siguiente…

9. Cierra el archivo.

Cerrar #1

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

Resultado:

Deja un comentario