Archivo de texto de escritura VBA

Excel VBA Escribir archivo de texto

En VBA podemos abrir o leer o escribir un archivo de texto, escribir un archivo de texto significa los datos que tenemos en una hoja de Excel y los queremos en un archivo de texto o un archivo de bloc de notas, hay dos métodos para hacerlo, uno es por usando la propiedad del objeto del sistema de archivos de VBA y otra es usando el método Abrir y escribir en VBA.

En la mayoría de las empresas corporativas, una vez finalizado el informe, buscan subir el informe a la base de datos. Para subir a la base de datos utilizan el formato "Archivos de texto" para actualizar la base de datos. Por lo general, copiamos los datos de Excel y los pegamos en un archivo de texto. La razón por la que confiamos en los archivos de texto es que es muy fácil trabajar con ellos debido a que son livianos y sencillos. Al usar la codificación VBA, podemos automatizar la tarea de copiar datos de un archivo de Excel a un archivo de texto. En este artículo, le mostraremos cómo copiar o escribir datos desde un archivo de Excel a un archivo de texto usando el código VBA.

¿Cómo escribir datos en archivos de texto usando VBA?

Escribir datos de Excel a texto es una codificación compleja y requiere un muy buen conocimiento de la codificación VBA. Siga los pasos a continuación para escribir el código VBA para copiar datos de Excel a un archivo de texto.

Antes de mostrarle la forma de escribir el código, permítame explicarle cómo abrir el archivo de texto usando una declaración abierta.

Sintaxis del archivo de texto abierto

Abra [Ruta de archivo], Para [Modo], Como [Número de archivo]

Ruta del archivo: la ruta del archivo que intentamos abrir en la computadora.

Modo: el modo es el control que podemos tener sobre la apertura de archivos de texto. Podemos tener tres tipos de control sobre el archivo de texto.

  • Modo de entrada: sugiere un control de " sólo lectura " del archivo de texto de apertura. Si usamos “Modo de entrada” no podemos hacer nada con el archivo. Podemos simplemente leer el contenido del archivo de texto.
  • Modo de salida: usando esta opción podemos escribir el contenido en él. El punto que debemos recordar aquí es que todos los datos existentes se sobrescribirán. Por lo tanto, debemos tener cuidado con la posible pérdida de datos antiguos.
  • Modo de adición : este modo es completamente opuesto al modo de salida. Con este método, podemos escribir los nuevos datos al final de los datos existentes en el archivo.

Número de archivo: esto contará el número de archivo de texto de todos los archivos de texto abiertos. Esto reconocerá los números de archivo abiertos en valores enteros del 1 al 511. Asignar el número de archivo es complicado y genera mucha confusión. Para ello, podemos utilizar la función Archivo gratuita.

Free File devuelve el número único de los archivos abiertos. De esta forma podemos asignar el número de archivo único sin ningún tipo de valores duplicados.

Puede descargar esta plantilla de archivo de texto de escritura VBA aquí - Plantilla de archivo de texto de escritura VBA

Ejemplo 1

Siga los pasos a continuación para escribir el código para crear un nuevo archivo de texto.

Suponga que ya tiene un archivo de texto llamado "Hello.txt" en el almacenamiento de su computadora y le mostraremos cómo escribir los datos en él.

Paso 1: declarar variable

Declare la variable para contener la ruta del archivo como String.

Código:

 Sub TextFile_Example1 () Dim Path As String End Sub 

Paso 2: Determine el número de archivo

Para determinar a qué número de archivo nos referimos, declarar una variable más como Integer.

Código:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer End Sub 

Paso 3: Asignar ruta de archivo

Ahora, para la variable Ruta, asigne la ruta del archivo con un nombre de archivo.

Código:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Cambie la ruta según sus requisitos End Sub 

Paso 4: Asignar función de archivo libre

Ahora, para la variable Número de archivo, asigne la función "Archivo libre" para almacenar un número de archivo único.

Código:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Cambie la ruta según su requisito FileNumber = FreeFile End Sub 

Paso 5: Abra el archivo de texto

Ahora necesitamos abrir el archivo de texto para trabajar con él. Como he explicado, necesitamos usar la instrucción OPEN para abrir el archivo de texto.

Paso 6: use el método de impresión / escritura

Una vez que se abre el archivo, debemos escribir algo en él. Para escribir en el archivo de texto, necesitamos usar el método "Escribir" o "Imprimir".

Código:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Cambie la ruta según su requisito FileNumber = FreeFile Abrir ruta para la salida como FileNumber Imprimir #FileNumber, " Bienvenido "Print #FileNumber", a "Print #FileNumber," VBA "End Sub 

Primero, debemos mencionar el número de archivo (aquí hemos asignado el archivo a través de la variable "FileNumber"), luego debemos agregar el contenido que queremos agregar a un archivo de texto.

Paso 7: guardar y cerrar el archivo de texto

Una vez que el contenido está escrito en un archivo de texto, necesitamos guardar y cerrar el archivo de texto.

Código:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Archivos Excel \ VBA File \ Hello.txt" 'Cambie la ruta según su requisito FileNumber = FreeFile Abrir ruta para la salida como FileNumber Imprimir #FileNumber, " Bienvenido "Print #FileNumber", a "Print #FileNumber," VBA "Cerrar FileNumber End Sub 

Ahora, ejecute el código esto manualmente o mediante la tecla de acceso directo de Excel F5, escribirá el contenido mencionado en el archivo de texto mencionado.

Ejemplo # 2

Ahora veremos cómo escribir los datos de la hoja de Excel en un archivo de texto.

For this example, I have created simple data in excel like below.

Step 1: With the continuation of the old example define two more variables as Integer to find the last row and last column.

Code:

 Sub TextFile_Example2() Dim Path As String Dim FileNumber As Integer Dim LR As Integer Dim LC As Integer End Sub 

Step 2: Find the last used row and column in the worksheet.

Step 3: Now assign the file path and file number.

Step 4: Now use the OPEN statement to open the text file.

Step 5: We need to loop through rows and columns, so declare two more variables as Integer.

Step 6: Now open Loop to loop through the row (For next loop in VBA)

Step 7: Now to loop through columns open one more loop inside the existing loop.

Step 8: We need to write the same line of data until it reaches the last column. So for this apply IF statement in VBA.

Step 9: Now save and close the text file.

This code will write the details to a text file, but to open the text file after written we need to use the below code.

Code:

 Sub TextFile_Example2() Dim Path As String Dim FileNumber As Integer Dim LR As Integer Dim LC As Integer Dim k As Integer Dim i As Integer LR = Worksheets("Text").Cells(Rows.Count, 1).End(xlUp).Row LC = Worksheets("Text").Cells(1, Columns.Count).End(xlToLeft).Column Path = "D:\Excel Files\VBA File\Hello.txt" FileNumber = FreeFile Open Path For Output As FileNumber For k = 1 To LR For i = 1 To LC If i  LC Then Print #FileNumber, Cells(i, k), Else Print #FileNumber, Cells(i, k) End If Next i Next k Close FileNumber Shell "notepad.exe " & Path, vbNormalFocus End Sub 

So, run the code using the F5 key or manually then, it will copy the data like the below.