¿cómo crear y escribir en un archivo de texto usando vba?

Para crear texto usando código VBA, debe usar el método CreateTextFile. Este método le permite establecer una ubicación donde desea crearlo. Este método tiene una sintaxis en la que puede especificar si desea sobrescribir el archivo en la ubicación y especificar si el archivo se crea como un archivo Unicode o ASCII.

Crear un archivo de texto con VBA

Utilice los siguientes pasos:

  1. Primero, necesita usar un objeto FileSystemObject o Folder para usarlo con el método.
    create-a-text-fie-using-vba
  2. Después de eso, necesitas crear otro objeto usando el método CreateTextFile.
    create-text-file-method
  3. En este código, hemos usado VERDADERO para sobrescribir si ya existe un archivo con el mismo nombre en la carpeta.
  4. Al final, cuando ejecute esta macro, cree un nuevo archivo de texto en la carpeta de la siguiente manera.
 Sub create_text_file() 'object to use as folder Dim fld As Object Set fld = CreateObject("Scripting.FileSystemObject") 'using create text file method Dim myFile As Object Set myFile = fld.CreateTextFile("C:UsersDellDesktopmyFoldermyTextFile.txt", True) End Sub

Sintaxis del método CreateTextFile

 CreateTextFile (filename, [ overwrite, [ unicode ]])
  • nombre de archivo: Ruta y nombre del archivo que desea crear.
  • sobrescribir: booleano para definir si desea sobrescribir el archivo (si ya existe) (opcional).
  • unicode: booleano para definir si el archivo se crea como un archivo Unicode o ASCII (opcional).

Escribir en un archivo de texto usando VBA

Puede utilizar dos declaraciones para escribir datos en un archivo de texto:

  1. Escribir: con esta declaración puede escribir datos en un archivo de texto donde tendrá comas entre valores, comillas alrededor de cadenas y signos # alrededor de fechas.
    write-statement
  2. Imprimir: Con esta instrucción puedes escribir datos en un archivo de texto con la apariencia exacta que tienes en la hoja de cálculo de Excel.
    print-statement

Ahora veremos ejemplos de ambas declaraciones y entenderemos cómo escribir código completo para escribir en un archivo de texto. Pero antes de eso, debes comprender algunas de las terminologías para escribir el código de la manera que desees.

  • Para salida: puede utilizar este comando cuando desee escribir datos o modificar datos en un archivo de texto.
  • Para entrada: con este comando podrás extraer datos de un texto, pero no podrás modificar ni agregar datos al archivo.
  • Para agregar: este comando le ayuda a agregar nuevos datos en la parte inferior del archivo de texto.
  • FreeFile: puede usar esto para establecer un número de archivo que no se usa para el archivo de texto que desea usar para poder consultarlo.

Ahora escribamos un código para ingresar datos en un archivo de texto.

  1. Primero, debes declarar las variables que se utilizarán en el código.
    declare-variables
  2. Después de eso, debe definir el rango que desea escribir en el archivo de texto. Y use el número de celdas en el rango como contador para el bucle configurándolo en una variable.
    define-the-range
  3. A continuación, debe configurar la dirección del archivo de texto donde desea agregar datos.
    define-the-address-of-the-text-file
  4. A partir de ahí, debes declarar el comando «FreeFile» en una variable para obtener el número de archivo.
    freefile-command
  5. Ahora necesita crear usando el comando «Salida» porque necesita agregar datos al archivo.
    output-command
  6. Finalmente, debe usar el bucle «Para el siguiente» para obtener los valores del rango uno por uno y agregarlos al archivo.
    for-next-loop-to-get-values
  7. Además, debe utilizar el comando cerrar para cerrar el archivo de texto después de que se le hayan agregado los datos.
    close-command
  8. En última instancia, cuando ejecuta esta macro, agrega datos del rango A1:A13 al archivo de texto que guardó en la ruta que mencionó.
    run-the-macro

Nota: Asegúrese de cambiar la ruta del archivo de texto del código de acuerdo con la ruta que tiene en su sistema.

 Option Explicit Sub data_to_text_file() 'variables that you need to use in the code Dim TextFile As Integer Dim iCol As Integer Dim myRange As Range Dim cVal As Range Dim i As Integer Dim myFile As String 'define the range that you want to write Set myRange = Range("A1:A13") iCol = myRange.Count 'path to the text file (MAKE SURE TO CHANGE IT) myFile = "C:UsersDellDesktopNewFoldertextfile.txt" 'define FreeFile to the variable file number TextFile = FreeFile 'using append command to add text to the end of the file Open myFile For Output As TextFile 'loop to add data to the text file For i = 1 To iCol Print #TextFile, Cells(i, 1), Print #TextFile, Cells(i, 2) Next i 'close command to close the text file after adding data Close #TextFile End Sub

Añadir un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *