Escribir datos en un archivo de texto usando Excel VBA
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. Aquí utilizamos una variable Variant porque una variable Variant puede contener cualquier tipo de valor.
2. Necesitamos especificar la ruta completa y el nombre del archivo.
Nota: la propiedad DefaultFilePath devuelve la ruta predeterminada del archivo. La ruta a la carpeta que ve cuando abre o guarda un archivo.
3. Iniciamos el rango del objeto rng con el rango seleccionado.
4. Agregue la siguiente línea de código:
Nota: esta declaración permite que el archivo sea escrito en. 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. Iniciar un bucle doble.
For 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.
7. Agregue las siguientes líneas de código para escribir el valor de cellValue en el archivo de texto.
Write #1, cellValue
Else
Write #1, cellValue,
End If
Explicación: debido a la instrucción If Then Else, Excel VBA solo inicia 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 te olvides de cerrar ambos bucles.
Next i
9. Cierre el archivo.
10. Seleccione los datos y haga clic en el botón de comando en la hoja.
Resultado: